]> git.0d.be Git - empathy.git/commitdiff
Display the Top Contacts group name above the top contacts even if all of them are...
authorLaurent Contzen <lcontzen@gmail.com>
Fri, 13 Jul 2012 15:10:50 +0000 (17:10 +0200)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Tue, 17 Jul 2012 09:53:00 +0000 (11:53 +0200)
https://bugzilla.gnome.org/show_bug.cgi?id=679868

libempathy-gtk/empathy-roster-view.c

index 5b0433f162f41737601fc88b941cf49766ded995..9647a1a4f4b55cda4e7cfdf0f2c66d5ada07e316 100644 (file)
@@ -809,26 +809,30 @@ contact_should_be_displayed (EmpathyRosterView *self,
           empathy_live_search_get_text (self->priv->search),
           empathy_live_search_get_words (self->priv->search));
     }
-  else
+
+  if (self->priv->show_offline)
+      return TRUE;
+
+  if (contact_is_favourite (contact))
     {
-      if (self->priv->show_offline)
-        {
-          return TRUE;
-        }
-      else if (!self->priv->show_groups &&
-          contact_is_favourite (contact))
-        {
-          /* Always display favourite contacts in non-group mode. In the group
-           * mode we'll display only the one in the 'top' section. */
-          return TRUE;
-        }
-      else
-        {
-          return empathy_roster_contact_is_online (contact);
-        }
+      const gchar *group_name;
+
+      if (!self->priv->show_groups)
+        /* Always display favourite contacts in non-group mode. */
+        return TRUE;
+
+      group_name = empathy_roster_contact_get_group (contact);
+
+      if (!tp_strdiff (group_name, EMPATHY_ROSTER_VIEW_GROUP_TOP_GROUP))
+        /* Always display favourite contact in group mode only in the
+         * 'top group'*/
+        return TRUE;
     }
+
+  return empathy_roster_contact_is_online (contact);
 }
 
+
 static gboolean
 filter_contact (EmpathyRosterView *self,
     EmpathyRosterContact *contact)
@@ -845,10 +849,6 @@ filter_contact (EmpathyRosterView *self,
       group_name = empathy_roster_contact_get_group (contact);
       group = lookup_roster_group (self, group_name);
 
-      if (!tp_strdiff (group_name, EMPATHY_ROSTER_VIEW_GROUP_TOP_GROUP) &&
-          contact_is_favourite (contact))
-        displayed = TRUE;
-
       if (group != NULL)
         {
           /* When searching, always display even if the group is closed */