diff options
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gtkaction.c | 4 | ||||
-rw-r--r-- | gtk/gtkactiongroup.c | 6 | ||||
-rw-r--r-- | gtk/gtktoolbutton.c | 3 |
3 files changed, 8 insertions, 5 deletions
diff --git a/gtk/gtkaction.c b/gtk/gtkaction.c index afc80780ae..6822e5f5cf 100644 --- a/gtk/gtkaction.c +++ b/gtk/gtkaction.c @@ -712,7 +712,9 @@ connect_proxy (GtkAction *action, image); gtk_widget_show (image); } - if (action->private_data->stock_id) + + if (action->private_data->stock_id && + gtk_icon_factory_lookup_default (action->private_data->stock_id)) gtk_image_set_from_stock (GTK_IMAGE (image), action->private_data->stock_id, GTK_ICON_SIZE_MENU); else if (action->private_data->icon_name) diff --git a/gtk/gtkactiongroup.c b/gtk/gtkactiongroup.c index dfa48f7461..7b7bd6b7f6 100644 --- a/gtk/gtkactiongroup.c +++ b/gtk/gtkactiongroup.c @@ -782,9 +782,9 @@ gtk_action_group_add_actions_full (GtkActionGroup *action_group, if (entries[i].stock_id) { - if (gtk_icon_factory_lookup_default (entries[i].stock_id)) - g_object_set (action, "stock-id", entries[i].stock_id, NULL); - else + g_object_set (action, "stock-id", entries[i].stock_id, NULL); + if (gtk_icon_theme_has_icon (gtk_icon_theme_get_default (), + entries[i].stock_id)) g_object_set (action, "icon-name", entries[i].stock_id, NULL); } diff --git a/gtk/gtktoolbutton.c b/gtk/gtktoolbutton.c index ae9c7ad550..5c7ff4daf1 100644 --- a/gtk/gtktoolbutton.c +++ b/gtk/gtktoolbutton.c @@ -405,7 +405,8 @@ gtk_tool_button_construct_contents (GtkToolItem *tool_item) NULL); } } - else if (button->priv->stock_id) + else if (button->priv->stock_id && + gtk_icon_factory_lookup_default (button->priv->stock_id)) { icon = gtk_image_new_from_stock (button->priv->stock_id, icon_size); gtk_widget_show (icon); |