--- gnome-panel-2.26.0/gnome-panel/panel-util.h.orig 2009-04-13 15:12:27.000000000 -0400 +++ gnome-panel-2.26.0/gnome-panel/panel-util.h 2009-04-13 15:19:17.000000000 -0400 @@ -65,6 +65,9 @@ void panel_util_set_tooltip_text (GtkWid char *panel_util_get_icon_name_from_g_icon (GIcon *gicon); GdkPixbuf *panel_util_get_pixbuf_from_g_loadable_icon (GIcon *gicon, int size); +GdkPixbuf *panel_util_get_pixbuf_from_gicon (GtkIconTheme *icon_theme, + GIcon *gicon, + int size); GFile *panel_util_get_file_optional_homedir (const char *location); G_END_DECLS --- gnome-panel-2.26.0/gnome-panel/panel-util.c.orig 2009-04-13 15:12:22.000000000 -0400 +++ gnome-panel-2.26.0/gnome-panel/panel-util.c 2009-04-13 15:19:09.000000000 -0400 @@ -832,6 +832,33 @@ panel_util_get_pixbuf_from_g_loadable_ic return pixbuf; } +GdkPixbuf * +panel_util_get_pixbuf_from_gicon (GtkIconTheme *icon_theme, + GIcon *gicon, + int size) +{ + GdkPixbuf *pixbuf; + GtkIconInfo *icon_info; + + g_return_val_if_fail (G_IS_ICON (gicon), NULL); + + pixbuf = NULL; + + icon_info = gtk_icon_theme_lookup_by_gicon (icon_theme, + gicon, + size, + 0); + if (icon_info == NULL) + goto out; + + pixbuf = gtk_icon_info_load_icon (icon_info, NULL); + + gtk_icon_info_free (icon_info); + + out: + return pixbuf; +} + static char * panel_util_get_file_display_name_if_mount (GFile *file) { --- gnome-panel-2.26.0/gnome-panel/menu.c.orig 2009-04-13 15:05:37.000000000 -0400 +++ gnome-panel-2.26.0/gnome-panel/menu.c 2009-04-13 15:22:38.000000000 -0400 @@ -599,7 +599,7 @@ load_icons_handler_again: &long_operation); g_free (icon_name); } else { - pb = panel_util_get_pixbuf_from_g_loadable_icon (icon->gicon, icon_height); + pb = panel_util_get_pixbuf_from_gicon (icon->icon_theme, icon->gicon, icon_height); if (!pb && icon->fallback_image) { pb = panel_make_menu_icon (icon->icon_theme, NULL,