summaryrefslogtreecommitdiff
path: root/gtk/gtkaction.c
diff options
context:
space:
mode:
authorMatthias Clasen <maclas@gmx.de>2003-09-06 23:52:00 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2003-09-06 23:52:00 +0000
commite8c93d56a0c0fb7a4776c54ab9441f3f9a4834db (patch)
treefe6f642b9e69480168f3a1bc0c38233d07116af7 /gtk/gtkaction.c
parentcc4935c01c97e75703043eda19b182e87a4a1e44 (diff)
downloadgtk+-e8c93d56a0c0fb7a4776c54ab9441f3f9a4834db.tar.gz
Fix a C99ism. (#121640, Josh Beam)
2003-09-07 Matthias Clasen <maclas@gmx.de> * gtk/gtkuimanager.c (update_node): Fix a C99ism. (#121640, Josh Beam) Fixes for accelerator handling during (un)merging: * gtk/gtkuimanager.c (update_node): Move setting info-action after the switch, since the old action is needed in some cases. In cases of proxy type mismatch, disconnect the old proxy from the old action. * gtk/gtkaction.c (remove_proxy): Renamed from gtk_action_remove_proxy(). Move unsetting of the accelerator here from disconnect_proxy() in order to catch all cases of removing a proxy. (gtk_action_disconnect_proxy): Fix logic in g_return_if_fail() to fail if proxy isn't a proxy of action.
Diffstat (limited to 'gtk/gtkaction.c')
-rw-r--r--gtk/gtkaction.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/gtk/gtkaction.c b/gtk/gtkaction.c
index ff5a718036..df4301450b 100644
--- a/gtk/gtkaction.c
+++ b/gtk/gtkaction.c
@@ -437,10 +437,13 @@ create_tool_item (GtkAction *action)
}
static void
-gtk_action_remove_proxy (GtkWidget *widget,
- GtkAction *action)
+remove_proxy (GtkWidget *proxy,
+ GtkAction *action)
{
- action->private_data->proxies = g_slist_remove (action->private_data->proxies, widget);
+ if (GTK_IS_MENU_ITEM (proxy))
+ gtk_menu_item_set_accel_path (GTK_MENU_ITEM (proxy), NULL);
+
+ action->private_data->proxies = g_slist_remove (action->private_data->proxies, proxy);
}
static void
@@ -531,7 +534,7 @@ connect_proxy (GtkAction *action,
/* add this widget to the list of proxies */
action->private_data->proxies = g_slist_prepend (action->private_data->proxies, proxy);
g_signal_connect (proxy, "destroy",
- G_CALLBACK (gtk_action_remove_proxy), action);
+ G_CALLBACK (remove_proxy), action);
g_signal_connect_object (action, "notify::sensitive",
G_CALLBACK (gtk_action_sync_property), proxy, 0);
@@ -661,9 +664,9 @@ disconnect_proxy (GtkAction *action,
/* remove proxy from list of proxies */
g_signal_handlers_disconnect_by_func (proxy,
- G_CALLBACK (gtk_action_remove_proxy),
+ G_CALLBACK (remove_proxy),
action);
- gtk_action_remove_proxy (proxy, action);
+ remove_proxy (proxy, action);
/* disconnect the activate handler */
g_signal_handlers_disconnect_by_func (proxy,
@@ -683,9 +686,6 @@ disconnect_proxy (GtkAction *action,
G_CALLBACK (gtk_action_sync_label),
proxy);
- if (GTK_IS_MENU_ITEM (widget))
- gtk_menu_item_set_accel_path (GTK_MENU_ITEM (widget), NULL);
-
/* toolbar button specific synchronisers ... */
g_signal_handlers_disconnect_by_func (action,
G_CALLBACK (gtk_action_sync_short_label),
@@ -833,7 +833,7 @@ gtk_action_disconnect_proxy (GtkAction *action,
g_return_if_fail (GTK_IS_ACTION (action));
g_return_if_fail (GTK_IS_WIDGET (proxy));
- g_return_if_fail (g_object_get_data (G_OBJECT (proxy), "gtk-action") != action);
+ g_return_if_fail (g_object_get_data (G_OBJECT (proxy), "gtk-action") == action);
(* GTK_ACTION_GET_CLASS (action)->disconnect_proxy) (action, proxy);
}