diff options
author | Matthias Clasen <mclasen@redhat.com> | 2006-06-20 18:01:23 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2006-06-20 18:01:23 +0000 |
commit | 8a763ca49d386e4c808b040d8138783916872964 (patch) | |
tree | 1f8b48235111809cbe92e5f7b1f5ab993e6bcc2d /gtk | |
parent | 0bce4d271acc1d280df4aafd6d1d3409a088d1c6 (diff) | |
download | gtk+-8a763ca49d386e4c808b040d8138783916872964.tar.gz |
Fix handling of stock items without icons in action-based ui. (#342458,
2006-06-20 Matthias Clasen <mclasen@redhat.com>
Fix handling of stock items without icons in action-based
ui. (#342458, Callum McKenzie)
* gtk/gtkactiongroup.c (gtk_action_group_add_actions_full): Set
the stock id even if there is no icon for it.
* gtk/gtkaction.c (connect_proxy):
* gtk/gtktoolbutton.c (gtk_tool_button_construct_contents): Only
construct a stock icon if the stock item has an icon.
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); |