Show icons of programs in complex commands as well

This commit is contained in:
Christian Dywan 2008-10-25 16:18:38 +02:00
parent cefcb42eef
commit 1f915eb58a

View file

@ -182,26 +182,34 @@ proxy_download_manager_icon_cb (GtkWidget* entry,
GdkEventFocus* event,
GtkImage* icon)
{
const gchar* program;
const gchar* command;
gchar* first_space;
gchar* first_part;
gchar* path;
program = gtk_entry_get_text (GTK_ENTRY (entry));
path = g_find_program_in_path (program);
command = gtk_entry_get_text (GTK_ENTRY (entry));
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 (gtk_icon_theme_has_icon (gtk_icon_theme_get_for_screen (
gtk_widget_get_screen (entry)), program))
gtk_image_set_from_icon_name (icon, program, GTK_ICON_SIZE_MENU);
gtk_widget_get_screen (entry)), first_part))
gtk_image_set_from_icon_name (icon, first_part, GTK_ICON_SIZE_MENU);
else
gtk_image_set_from_stock (icon, GTK_STOCK_EXECUTE, GTK_ICON_SIZE_MENU);
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);
else
gtk_image_clear (icon);
g_free (first_part);
return FALSE;
}