diff options
author | Ted Gould <ted@canonical.com> | 2009-08-08 05:50:34 -0600 |
---|---|---|
committer | Ted Gould <ted@canonical.com> | 2009-08-08 05:50:34 -0600 |
commit | dbf5b1d9ea6aef0fb55ffcd3b6322fbfb20e5e73 (patch) | |
tree | a1b3e94834e76e795cd75735761fcf934763c16a /src | |
parent | 0fe5f1695242c35ad6ce071f01736235869ea146 (diff) | |
download | ayatana-indicator-session-dbf5b1d9ea6aef0fb55ffcd3b6322fbfb20e5e73.tar.gz ayatana-indicator-session-dbf5b1d9ea6aef0fb55ffcd3b6322fbfb20e5e73.tar.bz2 ayatana-indicator-session-dbf5b1d9ea6aef0fb55ffcd3b6322fbfb20e5e73.zip |
Better displose to free the proxy and ensuring that statuc changes get noted.
Diffstat (limited to 'src')
-rw-r--r-- | src/status-provider-pidgin.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/status-provider-pidgin.c b/src/status-provider-pidgin.c index 6a3f7a5..5e42ff2 100644 --- a/src/status-provider-pidgin.c +++ b/src/status-provider-pidgin.c @@ -129,6 +129,12 @@ status_provider_pidgin_init (StatusProviderPidgin *self) static void status_provider_pidgin_dispose (GObject *object) { + StatusProviderPidginPrivate * priv = STATUS_PROVIDER_PIDGIN_GET_PRIVATE(self); + + if (priv->proxy != NULL) { + g_object_unref(priv->proxy); + priv->proxy = NULL; + } G_OBJECT_CLASS (status_provider_pidgin_parent_class)->dispose (object); return; @@ -166,6 +172,7 @@ set_status (StatusProvider * sp, StatusProviderStatus status) StatusProviderPidginPrivate * priv = STATUS_PROVIDER_PIDGIN_GET_PRIVATE(sp); pg_status_t pg_status = sp_to_pg_map[status]; priv->pg_status = pg_status; + g_signal_emit(G_OBJECT(sp), signals[STATUS_CHANGED], 0, pg_to_sp_map[priv->pg_status], TRUE); return; } |