summaryrefslogtreecommitdiff
path: root/gtk/gtkaction.c
diff options
context:
space:
mode:
authorMatthias Clasen <maclas@gmx.de>2003-09-06 22:13:20 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2003-09-06 22:13:20 +0000
commit0a79e5e3be3313a9e106322c7f7717901ba5bc4f (patch)
tree15c640b3ed33db6ceb2c9c2084dfeb9ebe9018d7 /gtk/gtkaction.c
parent7db084ec5beb4370c73ab28e69d030c90424c11e (diff)
downloadgtk+-0a79e5e3be3313a9e106322c7f7717901ba5bc4f.tar.gz
Make disconnect work for toolitems.
2003-09-07 Matthias Clasen <maclas@gmx.de> * gtk/gtkaction.c (disconnect_proxy): Make disconnect work for toolitems.
Diffstat (limited to 'gtk/gtkaction.c')
-rw-r--r--gtk/gtkaction.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/gtk/gtkaction.c b/gtk/gtkaction.c
index 926cc1b4ac..ff5a718036 100644
--- a/gtk/gtkaction.c
+++ b/gtk/gtkaction.c
@@ -599,7 +599,7 @@ connect_proxy (GtkAction *action,
if (action->private_data->accel_quark)
{
gtk_menu_item_set_accel_path (GTK_MENU_ITEM (proxy),
- g_quark_to_string (action->private_data->accel_quark));
+ g_quark_to_string (action->private_data->accel_quark));
}
g_signal_connect_object (proxy, "activate",
@@ -657,11 +657,6 @@ static void
disconnect_proxy (GtkAction *action,
GtkWidget *proxy)
{
- static guint notify_id = 0;
-
- if (!notify_id)
- notify_id = g_signal_lookup ("notify", G_TYPE_OBJECT);
-
g_object_set_data (G_OBJECT (proxy), "gtk-action", NULL);
/* remove proxy from list of proxies */
@@ -687,13 +682,15 @@ disconnect_proxy (GtkAction *action,
g_signal_handlers_disconnect_by_func (action,
G_CALLBACK (gtk_action_sync_label),
proxy);
-
- gtk_menu_item_set_accel_path (GTK_MENU_ITEM (proxy), NULL);
+
+ 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),
proxy);
+
g_signal_handlers_disconnect_by_func (proxy,
G_CALLBACK (gtk_action_create_menu_proxy),
action);