From f25c42cb2412ceb7d0c5374fc8ce4918c01a6a53 Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Mon, 21 May 2012 09:49:26 +0200 Subject: set separators between contacts --- libempathy-gtk/empathy-roster-view.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/libempathy-gtk/empathy-roster-view.c b/libempathy-gtk/empathy-roster-view.c index 21fabd4f9..0e7bf51f4 100644 --- a/libempathy-gtk/empathy-roster-view.c +++ b/libempathy-gtk/empathy-roster-view.c @@ -144,6 +144,26 @@ roster_view_sort (EmpathyRosterItem *a, return g_ascii_strcasecmp (alias_a, alias_b); } +static void +update_separator (GtkWidget **separator, + GtkWidget *child, + GtkWidget *before, + gpointer user_data) +{ + if (before == NULL) + { + /* No separator before the first row */ + g_clear_object (separator); + return; + } + + if (*separator != NULL) + return; + + *separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); + g_object_ref_sink (*separator); +} + static void empathy_roster_view_constructed (GObject *object) { @@ -172,6 +192,9 @@ empathy_roster_view_constructed (GObject *object) egg_list_box_set_sort_func (EGG_LIST_BOX (self), (GCompareDataFunc) roster_view_sort, self, NULL); + + egg_list_box_set_separator_funcs (EGG_LIST_BOX (self), update_separator, + self, NULL); } static void -- cgit v1.2.3