From a507ac419e482b94c2dd4d0c7ddd3cc67116b6e1 Mon Sep 17 00:00:00 2001 From: Laurent Contzen Date: Fri, 13 Jul 2012 17:10:50 +0200 Subject: Display the Top Contacts group name above the top contacts even if all of them are offline https://bugzilla.gnome.org/show_bug.cgi?id=679868 --- libempathy-gtk/empathy-roster-view.c | 40 ++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 20 deletions(-) (limited to 'libempathy-gtk/empathy-roster-view.c') diff --git a/libempathy-gtk/empathy-roster-view.c b/libempathy-gtk/empathy-roster-view.c index 5b0433f16..9647a1a4f 100644 --- a/libempathy-gtk/empathy-roster-view.c +++ b/libempathy-gtk/empathy-roster-view.c @@ -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 */ -- cgit v1.2.3