aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk/empathy-individual-store.c
diff options
context:
space:
mode:
Diffstat (limited to 'libempathy-gtk/empathy-individual-store.c')
-rw-r--r--libempathy-gtk/empathy-individual-store.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/libempathy-gtk/empathy-individual-store.c b/libempathy-gtk/empathy-individual-store.c
index 84fcbe289..da590608a 100644
--- a/libempathy-gtk/empathy-individual-store.c
+++ b/libempathy-gtk/empathy-individual-store.c
@@ -349,6 +349,7 @@ individual_store_add_individual (EmpathyIndividualStore *self,
EmpathyContact *contact;
TpConnection *connection;
EmpathyIndividualManagerFlags flags = 0;
+ gchar *protocol_name;
priv = GET_PRIV (self);
@@ -368,18 +369,23 @@ individual_store_add_individual (EmpathyIndividualStore *self,
flags = empathy_individual_manager_get_flags_for_connection (manager,
connection);
+ tp_connection_parse_object_path (connection, &protocol_name, NULL);
+
if (groups == NULL)
{
GtkTreeIter iter_group, *parent;
parent = &iter_group;
- /* TODO: implement */
- DEBUG ("forcing the People Nearby group even when 'show "
- "groups' is off is unimplemented");
-
if (!priv->show_groups)
parent = NULL;
+ else if (!tp_strdiff (protocol_name, "local-xmpp"))
+ {
+ /* these are People Nearby */
+ individual_store_get_group (self,
+ EMPATHY_INDIVIDUAL_STORE_PEOPLE_NEARBY, &iter_group, NULL, NULL,
+ TRUE);
+ }
else
{
individual_store_get_group (self,
@@ -391,6 +397,8 @@ individual_store_add_individual (EmpathyIndividualStore *self,
individual, flags);
}
+ g_free (protocol_name);
+
/* Else add to each group. */
for (l = groups; l; l = l->next)
{