diff options
author | Travis Reitter <travis.reitter@collabora.co.uk> | 2010-08-27 07:39:42 +0800 |
---|---|---|
committer | Philip Withnall <philip.withnall@collabora.co.uk> | 2010-08-27 17:45:54 +0800 |
commit | 17d384008361384be53a2466fcd9a7e837e10d09 (patch) | |
tree | 1ee2f915c4671ccbd933f8d2569620b34e763a44 | |
parent | 270a982f2cf19635a61f41e6cc49f7d6e8cfd016 (diff) | |
download | gsoc2013-empathy-17d384008361384be53a2466fcd9a7e837e10d09.tar gsoc2013-empathy-17d384008361384be53a2466fcd9a7e837e10d09.tar.gz gsoc2013-empathy-17d384008361384be53a2466fcd9a7e837e10d09.tar.bz2 gsoc2013-empathy-17d384008361384be53a2466fcd9a7e837e10d09.tar.lz gsoc2013-empathy-17d384008361384be53a2466fcd9a7e837e10d09.tar.xz gsoc2013-empathy-17d384008361384be53a2466fcd9a7e837e10d09.tar.zst gsoc2013-empathy-17d384008361384be53a2466fcd9a7e837e10d09.zip |
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.
-rw-r--r-- | libempathy/empathy-individual-manager.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/libempathy/empathy-individual-manager.c b/libempathy/empathy-individual-manager.c index 4d3eabb22..1e76cbf83 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 |