aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy/empathy-contact.c
diff options
context:
space:
mode:
authorTravis Reitter <travis.reitter@collabora.co.uk>2010-08-24 02:37:42 +0800
committerTravis Reitter <travis.reitter@collabora.co.uk>2010-08-24 22:57:28 +0800
commit4f79cd98c0501367570bc140776b5ec40bfee49c (patch)
treec377d7ed730ee4943d441b9725a0ca6f0dba3a2e /libempathy/empathy-contact.c
parent3bd33b4812d0b909a8a44b12791fcac75fcf365d (diff)
downloadgsoc2013-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
Diffstat (limited to 'libempathy/empathy-contact.c')
-rw-r--r--libempathy/empathy-contact.c6
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",