From f3ba001a1de2c961494e191910dd5017f769bdf1 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 29 Apr 2014 11:48:52 -0400 Subject: [PATCH] GtkMenuSectionBox: Always show separators for labeled sections ...unless they are empty. --- gtk/gtkmenusectionbox.c | 11 ++++++++--- tests/popover.ui | 3 ++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/gtk/gtkmenusectionbox.c b/gtk/gtkmenusectionbox.c index 62ab3182e2..935ddf51af 100644 --- a/gtk/gtkmenusectionbox.c +++ b/gtk/gtkmenusectionbox.c @@ -84,16 +84,21 @@ gtk_menu_section_box_sync_separators (GtkMenuSectionBox *box, gint *n_items) { gboolean should_have_separator; + gboolean has_separator; + gboolean has_label; gint n_items_before = *n_items; gtk_container_foreach (GTK_CONTAINER (box->item_box), gtk_menu_section_box_sync_item, n_items); - should_have_separator = n_items_before > 0 && *n_items > n_items_before; - if (box->separator == NULL) return; - if (should_have_separator == (gtk_widget_get_parent (box->separator) != NULL)) + has_separator = gtk_widget_get_parent (box->separator) != NULL; + has_label = !GTK_IS_SEPARATOR (box->separator); + + should_have_separator = (has_label || n_items_before > 0) && *n_items > n_items_before; + + if (should_have_separator == has_separator) return; if (should_have_separator) diff --git a/tests/popover.ui b/tests/popover.ui index 74fa0bfadb..f9a843e444 100644 --- a/tests/popover.ui +++ b/tests/popover.ui @@ -1,7 +1,8 @@
- horizontal-buttons + + Edit Cut top.cut