# HG changeset patch # User Jan Dj¸«£rv # Date 1194341212 0 # Node ID d7e05ac913d8836e24f8053bc9d5caea466c5515 # Parent 0fb2af7d89eda1cf9bc3abf8c8ef5c61f9de684d (xg_tool_bar_menu_proxy): Handle GTK_IMAGE_ICON_NAME and abort with a message on unhandled store_type values. diff -r 0fb2af7d89ed -r d7e05ac913d8 src/gtkutil.c --- a/src/gtkutil.c Tue Nov 06 07:00:47 2007 +0000 +++ b/src/gtkutil.c Tue Nov 06 09:26:52 2007 +0000 @@ -3460,6 +3460,7 @@ 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 @@ 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)