From: Ben Pfaff Date: Wed, 6 Apr 2011 04:30:34 +0000 (-0700) Subject: gui: Put a separator line before list of windows in Windows menus. X-Git-Tag: v0.7.8~20 X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=32897a3d95b7772d44ddd14e2ac8bc154cfe4542;p=pspp-builds.git 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. --- 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);