From 715d75230d1164601639043303bc869289e7e9ae Mon Sep 17 00:00:00 2001 From: Cody Russell Date: Wed, 17 Feb 2010 16:04:09 -0600 Subject: Disconnect 'client_menu_changed' in dispose method. --- src/libappindicator/app-indicator.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/libappindicator/app-indicator.c') diff --git a/src/libappindicator/app-indicator.c b/src/libappindicator/app-indicator.c index 88f6bb6..7fb7996 100644 --- a/src/libappindicator/app-indicator.c +++ b/src/libappindicator/app-indicator.c @@ -141,6 +141,7 @@ static void status_icon_changes (AppIndicator * self, gpointer data); static void status_icon_activate (GtkStatusIcon * icon, gpointer data); static void unfallback (AppIndicator * self, GtkStatusIcon * status_icon); static void watcher_proxy_destroyed (GObject * object, gpointer data); +static void client_menu_changed (GtkWidget *widget, GtkWidget *child, AppIndicator *indicator); /* GObject type */ G_DEFINE_TYPE (AppIndicator, app_indicator, G_TYPE_OBJECT); @@ -364,7 +365,10 @@ app_indicator_dispose (GObject *object) } if (priv->menu != NULL) { - g_object_unref(G_OBJECT(priv->menu)); + g_signal_handlers_disconnect_by_func (G_OBJECT (priv->menu), + client_menu_changed, + self); + g_object_unref(G_OBJECT(priv->menu)); priv->menu = NULL; } -- cgit v1.2.3