aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2010-07-08 12:23:14 -0500
committerTed Gould <ted@gould.cx>2010-07-08 12:23:14 -0500
commit46c8b3fee8172b80d0b0ee87887e4b3375c6f659 (patch)
treed2aa5307f31a0c7e6ae65a1189bab5b0cac958fc
parent569196687e0eed1ae841e50b449f95d071736fa4 (diff)
downloadlibayatana-indicator-46c8b3fee8172b80d0b0ee87887e4b3375c6f659.tar.gz
libayatana-indicator-46c8b3fee8172b80d0b0ee87887e4b3375c6f659.tar.bz2
libayatana-indicator-46c8b3fee8172b80d0b0ee87887e4b3375c6f659.zip
Disconnecting signal before removing from hashtable so we don't try twice.
-rw-r--r--libindicator/indicator-service.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/libindicator/indicator-service.c b/libindicator/indicator-service.c
index 15335f3..c29456e 100644
--- a/libindicator/indicator-service.c
+++ b/libindicator/indicator-service.c
@@ -453,6 +453,7 @@ unwatch_core (IndicatorService * service, const gchar * name)
gpointer watcher_item = g_hash_table_lookup(priv->watchers, name);
if (watcher_item != NULL) {
/* Free the watcher */
+ g_signal_handlers_disconnect_by_func(G_OBJECT(watcher_item), G_CALLBACK(proxy_destroyed), service);
g_hash_table_remove(priv->watchers, name);
} else {
/* Odd that we couldn't find the person, but, eh */