--- 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,