From 32897a3d95b7772d44ddd14e2ac8bc154cfe4542 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Tue, 5 Apr 2011 21:30:34 -0700 Subject: [PATCH] gui: Put a separator line before list of windows in Windows menus. I found it a bit confusing before, that the list of windows in the Windows menu was not separated from the list of actions of windows. This fixes the problem. Simply adding a separator item to the .ui files doesn't work, because GtkUIManager removes it. The same thing happens if we add a separator without adding a real menu item at the same time. Thanks to John Darrington for suggesting the root of the problem. --- src/ui/gui/psppire-window.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/ui/gui/psppire-window.c b/src/ui/gui/psppire-window.c index e03732fc..cf610f6f 100644 --- a/src/ui/gui/psppire-window.c +++ b/src/ui/gui/psppire-window.c @@ -304,9 +304,20 @@ menu_activate (GtkMenuItem *mi, gpointer data) static void insert_menuitem_into_menu (PsppireWindow *window, gpointer key) { - gchar *filename = g_filename_display_name (key); - GtkWidget *item = gtk_check_menu_item_new_with_label (filename); + gchar *filename; + GtkWidget *item; + /* Add a separator before adding the first real item. If we add a separator + at any other time, sometimes GtkUIManager removes it. */ + if (g_hash_table_size (window->menuitem_table) == 0) + { + GtkWidget *separator = gtk_separator_menu_item_new (); + gtk_widget_show (separator); + gtk_menu_shell_append (window->menu, separator); + } + + filename = g_filename_display_name (key); + item = gtk_check_menu_item_new_with_label (filename); g_free (filename); g_signal_connect (item, "toggled", G_CALLBACK (menu_toggled), NULL); -- 2.30.2