diff options
author | Danielle Madeley <danielle.madeley@collabora.co.uk> | 2011-10-26 11:26:11 +0800 |
---|---|---|
committer | Danielle Madeley <danielle.madeley@collabora.co.uk> | 2011-10-26 11:26:11 +0800 |
commit | fcb0e76deed0527edb5caff02dd0edf785b1f82e (patch) | |
tree | f3fc56f996ee8ce3a19966e969f7ae6bbb461f14 | |
parent | 6f49a762afc95060f19dc7778b0b588d1e86754b (diff) | |
download | gsoc2013-empathy-fcb0e76deed0527edb5caff02dd0edf785b1f82e.tar gsoc2013-empathy-fcb0e76deed0527edb5caff02dd0edf785b1f82e.tar.gz gsoc2013-empathy-fcb0e76deed0527edb5caff02dd0edf785b1f82e.tar.bz2 gsoc2013-empathy-fcb0e76deed0527edb5caff02dd0edf785b1f82e.tar.lz gsoc2013-empathy-fcb0e76deed0527edb5caff02dd0edf785b1f82e.tar.xz gsoc2013-empathy-fcb0e76deed0527edb5caff02dd0edf785b1f82e.tar.zst gsoc2013-empathy-fcb0e76deed0527edb5caff02dd0edf785b1f82e.zip |
contact-chooser: refilter when the tmp contacts change capabilities
Making a call to GetContactAttributes only gets the attributes currently known
to the CM. If a contact is unknown, lookups for the attributes are then queued
and signalled when retrieved. When we receive this signal, we should refilter
the contact list.
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=662727
-rw-r--r-- | libempathy-gtk/empathy-contact-chooser.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libempathy-gtk/empathy-contact-chooser.c b/libempathy-gtk/empathy-contact-chooser.c index b16540cf3..7f31e711e 100644 --- a/libempathy-gtk/empathy-contact-chooser.c +++ b/libempathy-gtk/empathy-contact-chooser.c @@ -187,6 +187,14 @@ out: } static void +contact_capabilities_changed (TpContact *contact, + GParamSpec *pspec, + EmpathyContactChooser *self) +{ + empathy_individual_view_refilter (self->priv->view); +} + +static void get_contacts_cb (TpConnection *connection, guint n_contacts, TpContact * const *contacts, @@ -224,6 +232,10 @@ get_contacts_cb (TpConnection *connection, individual = folks_individual_new (personas); + /* listen for updates to the capabilities */ + tp_g_signal_connect_object (contacts[0], "notify::capabilities", + G_CALLBACK (contact_capabilities_changed), self, 0); + /* Pass ownership to the list */ ctx->individuals = g_list_prepend (ctx->individuals, individual); |