From 1db176de7f9f4c3d0a1dd8d79259052aebf4bccc Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 24 Jan 2009 22:00:07 +0000 Subject: [PATCH] Fallback from stock ids to icon names like the old GtkAction code did svn path=/trunk/; revision=22210 --- ChangeLog | 6 ++++++ gtk/gtktoolbutton.c | 17 ++++++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index c8e1f3823..6851b5691 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-01-24 Matthias Clasen + + * gtk/gtktoolbutton.c (gtk_tool_button_activatable_reset): + Fall back from stock ids to icon names like the old code + did. Patch by Tristan van Berkom. + 2009-01-24 Matthias Clasen * tests/testactions.c: Add a testcase for toolitems using diff --git a/gtk/gtktoolbutton.c b/gtk/gtktoolbutton.c index be2bf5af4..6c00662b4 100644 --- a/gtk/gtktoolbutton.c +++ b/gtk/gtktoolbutton.c @@ -772,6 +772,7 @@ gtk_tool_button_activatable_update (GtkActivatable *activatable, gtk_tool_button_set_label (button, NULL); gtk_tool_button_set_icon_name (button, NULL); } + gtk_tool_button_set_icon_widget (button, NULL); gtk_tool_button_set_stock_id (button, gtk_action_get_stock_id (action)); } else if (strcmp (property_name, "gicon") == 0) @@ -812,6 +813,7 @@ gtk_tool_button_activatable_reset (GtkActivatable *activatable, { GtkToolButton *button; GIcon *icon; + const gchar *stock_id; parent_activatable_iface->reset (activatable, action); @@ -822,14 +824,15 @@ gtk_tool_button_activatable_reset (GtkActivatable *activatable, return; button = GTK_TOOL_BUTTON (activatable); - - gtk_tool_button_set_label (button, NULL); - gtk_tool_button_set_stock_id (button, NULL); - gtk_tool_button_set_icon_name (button, NULL); + stock_id = gtk_action_get_stock_id (action); + + gtk_tool_button_set_label (button, gtk_action_get_short_label (action)); gtk_tool_button_set_use_underline (button, TRUE); - - if (gtk_action_get_stock_id (action)) - gtk_tool_button_set_stock_id (button, gtk_action_get_stock_id (action)); + gtk_tool_button_set_stock_id (button, stock_id); + gtk_tool_button_set_icon_name (button, gtk_action_get_icon_name (action)); + + if (stock_id && gtk_icon_factory_lookup_default (stock_id)) + gtk_tool_button_set_icon_widget (button, NULL); else if ((icon = gtk_action_get_gicon (action)) != NULL) { GtkIconSize icon_size = gtk_tool_item_get_icon_size (GTK_TOOL_ITEM (button)); -- 2.43.2