]> git.0d.be Git - empathy.git/commitdiff
contact-chooser: refilter when the tmp contacts change capabilities
authorDanielle Madeley <danielle.madeley@collabora.co.uk>
Wed, 26 Oct 2011 03:26:11 +0000 (14:26 +1100)
committerDanielle Madeley <danielle.madeley@collabora.co.uk>
Wed, 26 Oct 2011 03:26:11 +0000 (14:26 +1100)
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

index b16540cf3c88df1e74de18cf8630e9fb17b85fe3..7f31e711e5b1c8fca3f7a82847d0b2b936a36812 100644 (file)
@@ -186,6 +186,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,
@@ -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);