aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Gould <ted@canonical.com>2009-08-08 05:50:34 -0600
committerTed Gould <ted@canonical.com>2009-08-08 05:50:34 -0600
commitdbf5b1d9ea6aef0fb55ffcd3b6322fbfb20e5e73 (patch)
treea1b3e94834e76e795cd75735761fcf934763c16a
parent0fe5f1695242c35ad6ce071f01736235869ea146 (diff)
downloadayatana-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.
-rw-r--r--src/status-provider-pidgin.c7
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;
}