summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Neumair <chris@gnome-de.org>2006-05-04 12:09:50 +0000
committerChristian Neumair <cneumair@src.gnome.org>2006-05-04 12:09:50 +0000
commit1184f65800760e9b202e957d825285e97d64f557 (patch)
tree26e97bdfd2ea780f497aa66db904689bcf2c0b58 /src
parente633db8f0d5678ca5a516b0f654aba7a2415a7b2 (diff)
downloadnautilus-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.c12
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,