Show icons of programs in complex commands as well
This commit is contained in:
parent
cefcb42eef
commit
1f915eb58a
1 changed files with 14 additions and 6 deletions
|
@ -182,26 +182,34 @@ proxy_download_manager_icon_cb (GtkWidget* entry,
|
||||||
GdkEventFocus* event,
|
GdkEventFocus* event,
|
||||||
GtkImage* icon)
|
GtkImage* icon)
|
||||||
{
|
{
|
||||||
const gchar* program;
|
const gchar* command;
|
||||||
|
gchar* first_space;
|
||||||
|
gchar* first_part;
|
||||||
gchar* path;
|
gchar* path;
|
||||||
|
|
||||||
program = gtk_entry_get_text (GTK_ENTRY (entry));
|
command = gtk_entry_get_text (GTK_ENTRY (entry));
|
||||||
path = g_find_program_in_path (program);
|
if ((first_space = strstr (command, " ")))
|
||||||
|
first_part = g_strndup (command, first_space - command);
|
||||||
|
else
|
||||||
|
first_part = g_strdup (command);
|
||||||
|
path = g_find_program_in_path (first_part);
|
||||||
|
|
||||||
if (path)
|
if (path)
|
||||||
{
|
{
|
||||||
if (gtk_icon_theme_has_icon (gtk_icon_theme_get_for_screen (
|
if (gtk_icon_theme_has_icon (gtk_icon_theme_get_for_screen (
|
||||||
gtk_widget_get_screen (entry)), program))
|
gtk_widget_get_screen (entry)), first_part))
|
||||||
gtk_image_set_from_icon_name (icon, program, GTK_ICON_SIZE_MENU);
|
gtk_image_set_from_icon_name (icon, first_part, GTK_ICON_SIZE_MENU);
|
||||||
else
|
else
|
||||||
gtk_image_set_from_stock (icon, GTK_STOCK_EXECUTE, GTK_ICON_SIZE_MENU);
|
gtk_image_set_from_stock (icon, GTK_STOCK_EXECUTE, GTK_ICON_SIZE_MENU);
|
||||||
g_free (path);
|
g_free (path);
|
||||||
}
|
}
|
||||||
else if (program && *program)
|
else if (first_part && *first_part)
|
||||||
gtk_image_set_from_stock (icon, GTK_STOCK_STOP, GTK_ICON_SIZE_MENU);
|
gtk_image_set_from_stock (icon, GTK_STOCK_STOP, GTK_ICON_SIZE_MENU);
|
||||||
else
|
else
|
||||||
gtk_image_clear (icon);
|
gtk_image_clear (icon);
|
||||||
|
|
||||||
|
g_free (first_part);
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue