From d87949ee841cb1be630ae1d048a1e007f2a4965f Mon Sep 17 00:00:00 2001 From: Danielle Madeley Date: Wed, 26 Oct 2011 14:26:11 +1100 Subject: 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 --- libempathy-gtk/empathy-contact-chooser.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/libempathy-gtk/empathy-contact-chooser.c b/libempathy-gtk/empathy-contact-chooser.c index 7faee3e09..4a4f9f4a0 100644 --- a/libempathy-gtk/empathy-contact-chooser.c +++ b/libempathy-gtk/empathy-contact-chooser.c @@ -175,6 +175,14 @@ out: return display; } +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, @@ -213,6 +221,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); -- cgit v1.2.1