diff options
author | Christian Neumair <chris@gnome-de.org> | 2006-05-04 12:09:50 +0000 |
---|---|---|
committer | Christian Neumair <cneumair@src.gnome.org> | 2006-05-04 12:09:50 +0000 |
commit | 1184f65800760e9b202e957d825285e97d64f557 (patch) | |
tree | 26e97bdfd2ea780f497aa66db904689bcf2c0b58 /src | |
parent | e633db8f0d5678ca5a516b0f654aba7a2415a7b2 (diff) | |
download | nautilus-1184f65800760e9b202e957d825285e97d64f557.tar.gz |
Disconnect signal handlers registered when connecting proxies.
2006-05-04 Christian Neumair <chris@gnome-de.org>
* src/nautilus-navigation-action.c:
(nautilus_navigation_action_class_init), (disconnect_proxy):
Disconnect signal handlers registered when connecting proxies.
Diffstat (limited to 'src')
-rw-r--r-- | src/nautilus-navigation-action.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/nautilus-navigation-action.c b/src/nautilus-navigation-action.c index 7dc6b7dc4..71c985a43 100644 --- a/src/nautilus-navigation-action.c +++ b/src/nautilus-navigation-action.c @@ -210,6 +210,17 @@ connect_proxy (GtkAction *action, GtkWidget *proxy) } static void +disconnect_proxy (GtkAction *action, GtkWidget *proxy) +{ + if (GTK_IS_MENU_TOOL_BUTTON (proxy)) { + g_signal_handlers_disconnect_by_func (proxy, G_CALLBACK (set_tooltip_callback), action); + g_signal_handlers_disconnect_by_func (proxy, G_CALLBACK (show_menu_callback), action); + } + + (* GTK_ACTION_CLASS (parent_class)->disconnect_proxy) (action, proxy); +} + +static void nautilus_navigation_action_finalize (GObject *object) { NautilusNavigationAction *action = NAUTILUS_NAVIGATION_ACTION (object); @@ -282,6 +293,7 @@ nautilus_navigation_action_class_init (NautilusNavigationActionClass *class) action_class->toolbar_item_type = GTK_TYPE_MENU_TOOL_BUTTON; action_class->connect_proxy = connect_proxy; + action_class->disconnect_proxy = disconnect_proxy; g_object_class_install_property (object_class, PROP_ARROW_TOOLTIP, |