aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuillaume Desmottes <gdesmott@gnome.org>2009-03-20 18:15:49 +0800
committerXavier Claessens <xclaesse@src.gnome.org>2009-03-20 18:15:49 +0800
commitad377bbe1a90ea741d441fb07517e3a06a35e718 (patch)
treea35f1a6607791099f7b4b18cec683e69669b56e5
parent20458e5de57530931ec17edc43fe0e545447d6d2 (diff)
downloadgsoc2013-empathy-ad377bbe1a90ea741d441fb07517e3a06a35e718.tar
gsoc2013-empathy-ad377bbe1a90ea741d441fb07517e3a06a35e718.tar.gz
gsoc2013-empathy-ad377bbe1a90ea741d441fb07517e3a06a35e718.tar.bz2
gsoc2013-empathy-ad377bbe1a90ea741d441fb07517e3a06a35e718.tar.lz
gsoc2013-empathy-ad377bbe1a90ea741d441fb07517e3a06a35e718.tar.xz
gsoc2013-empathy-ad377bbe1a90ea741d441fb07517e3a06a35e718.tar.zst
gsoc2013-empathy-ad377bbe1a90ea741d441fb07517e3a06a35e718.zip
empathy_contact_set_handle: remove the handle ready flag when the handle is set to 0
From: Guillaume Desmottes <gdesmott@gnome.org> svn path=/branches/gnome-2-26/; revision=2720
-rw-r--r--libempathy/empathy-contact.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/libempathy/empathy-contact.c b/libempathy/empathy-contact.c
index 59d55fd4d..1cac48513 100644
--- a/libempathy/empathy-contact.c
+++ b/libempathy/empathy-contact.c
@@ -456,6 +456,19 @@ contact_set_ready_flag (EmpathyContact *contact,
}
}
+static void
+contact_remove_ready_flag (EmpathyContact *contact,
+ EmpathyContactReady flag)
+{
+ EmpathyContactPriv *priv = GET_PRIV (contact);
+
+ if (priv->ready & flag)
+ {
+ priv->ready ^= flag;
+ g_object_notify (G_OBJECT (contact), "ready");
+ }
+}
+
EmpathyContact *
empathy_contact_new (McAccount *account)
{
@@ -713,7 +726,12 @@ empathy_contact_set_handle (EmpathyContact *contact,
priv->handle = handle;
g_object_notify (G_OBJECT (contact), "handle");
}
- contact_set_ready_flag (contact, EMPATHY_CONTACT_READY_HANDLE);
+
+ if (handle != 0)
+ contact_set_ready_flag (contact, EMPATHY_CONTACT_READY_HANDLE);
+ else
+ contact_remove_ready_flag (contact, EMPATHY_CONTACT_READY_HANDLE);
+
g_object_unref (contact);
}