summaryrefslogtreecommitdiff
path: root/src/gtkutil.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gtkutil.c')
-rw-r--r--src/gtkutil.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/gtkutil.c b/src/gtkutil.c
index 81ef09b7ec4..e36e192c65e 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -3460,6 +3460,7 @@ xg_tool_bar_menu_proxy (toolitem, user_data)
GtkImage *wimage = GTK_IMAGE (gtk_bin_get_child (GTK_BIN (wbutton)));
GtkSettings *settings = gtk_widget_get_settings (GTK_WIDGET (wbutton));
GtkImageType store_type = gtk_image_get_storage_type (wimage);
+
if (store_type == GTK_IMAGE_STOCK)
{
gchar *stock_id;
@@ -3489,6 +3490,25 @@ xg_tool_bar_menu_proxy (toolitem, user_data)
wmenuimage = gtk_image_new_from_pixbuf (dest_pixbuf);
}
+ else
+ {
+ fprintf (stderr, "internal error: GTK_IMAGE_PIXBUF failed\n");
+ abort ();
+ }
+ }
+ else if (store_type == GTK_IMAGE_ICON_NAME)
+ {
+ const gchar *icon_name;
+ GtkIconSize icon_size;
+
+ gtk_image_get_icon_name (wimage, &icon_name, &icon_size);
+ wmenuimage = gtk_image_new_from_icon_name (icon_name,
+ GTK_ICON_SIZE_MENU);
+ }
+ else
+ {
+ fprintf (stderr, "internal error: store_type is %d\n", store_type);
+ abort ();
}
}
if (wmenuimage)