From: Travis Reitter Date: Thu, 26 Aug 2010 23:39:42 +0000 (-0700) Subject: Don't filter out Individual removal at the IndividualManager level. X-Git-Url: https://git.0d.be/?p=empathy.git;a=commitdiff_plain;h=17d384008361384be53a2466fcd9a7e837e10d09 Don't filter out Individual removal at the IndividualManager level. The IndividualManager sometimes falsely filters out members of FolksIndividualAggregator:individuals-changed:removed that should be passed along to its users. --- diff --git a/libempathy/empathy-individual-manager.c b/libempathy/empathy-individual-manager.c index 4d3eabb2..1e76cbf8 100644 --- a/libempathy/empathy-individual-manager.c +++ b/libempathy/empathy-individual-manager.c @@ -171,7 +171,7 @@ aggregator_individuals_changed_cb (FolksIndividualAggregator *aggregator, EmpathyIndividualManager *self) { EmpathyIndividualManagerPriv *priv = GET_PRIV (self); - GList *l, *added_filtered = NULL, *removed_filtered = NULL; + GList *l, *added_filtered = NULL; /* Filter the individuals for ones which contain EmpathyContacts */ for (l = added; l; l = l->next) @@ -197,26 +197,21 @@ aggregator_individuals_changed_cb (FolksIndividualAggregator *aggregator, if (g_hash_table_lookup (priv->individuals, folks_individual_get_id (ind)) != NULL) - { - removed_filtered = g_list_prepend (removed_filtered, ind); - remove_individual (self, ind); - } + remove_individual (self, ind); } /* Bail if we have no individuals left */ - if (added_filtered == NULL && removed_filtered == NULL) + if (added_filtered == NULL && removed == NULL) return; added_filtered = g_list_reverse (added_filtered); - removed_filtered = g_list_reverse (removed_filtered); g_signal_emit (self, signals[MEMBERS_CHANGED], 0, message, - added_filtered, removed_filtered, + added_filtered, removed, tp_chanel_group_change_reason_from_folks_groups_change_reason (reason), TRUE); g_list_free (added_filtered); - g_list_free (removed_filtered); } static void