diff options
Diffstat (limited to 'src/gtkutil.c')
-rw-r--r-- | src/gtkutil.c | 20 |
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) |