diff options
author | Travis Reitter <travis.reitter@collabora.co.uk> | 2010-08-24 02:37:42 +0800 |
---|---|---|
committer | Travis Reitter <travis.reitter@collabora.co.uk> | 2010-08-24 22:57:28 +0800 |
commit | 4f79cd98c0501367570bc140776b5ec40bfee49c (patch) | |
tree | c377d7ed730ee4943d441b9725a0ca6f0dba3a2e | |
parent | 3bd33b4812d0b909a8a44b12791fcac75fcf365d (diff) | |
download | gsoc2013-empathy-4f79cd98c0501367570bc140776b5ec40bfee49c.tar gsoc2013-empathy-4f79cd98c0501367570bc140776b5ec40bfee49c.tar.gz gsoc2013-empathy-4f79cd98c0501367570bc140776b5ec40bfee49c.tar.bz2 gsoc2013-empathy-4f79cd98c0501367570bc140776b5ec40bfee49c.tar.lz gsoc2013-empathy-4f79cd98c0501367570bc140776b5ec40bfee49c.tar.xz gsoc2013-empathy-4f79cd98c0501367570bc140776b5ec40bfee49c.tar.zst gsoc2013-empathy-4f79cd98c0501367570bc140776b5ec40bfee49c.zip |
When setting an EmpathyContact's Persona, disconnect existing signal handler
-rw-r--r-- | libempathy/empathy-contact.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/libempathy/empathy-contact.c b/libempathy/empathy-contact.c index 260543155..ea78476a9 100644 --- a/libempathy/empathy-contact.c +++ b/libempathy/empathy-contact.c @@ -822,7 +822,11 @@ empathy_contact_set_persona (EmpathyContact *contact, return; if (priv->persona != NULL) - g_object_unref (priv->persona); + { + g_signal_handlers_disconnect_by_func (priv->persona, + folks_persona_notify_cb, contact); + g_object_unref (priv->persona); + } priv->persona = g_object_ref (persona); g_signal_connect (priv->persona, "notify", |