X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fwindows-menu.c;h=b6ae962b62ac89392d5060616a4cd76235826796;hb=8ccde6b2cb998a1acb9d8074b25088d839cf658f;hp=5390b0e9ae13efb254828c87e3b55ab13787e002;hpb=f8fdc760d4ee04801a2da8af0700b2a87f724ae4;p=pspp diff --git a/src/ui/gui/windows-menu.c b/src/ui/gui/windows-menu.c index 5390b0e9ae..b6ae962b62 100644 --- a/src/ui/gui/windows-menu.c +++ b/src/ui/gui/windows-menu.c @@ -42,23 +42,18 @@ min_all (GtkWidget *widget, gpointer ud) static void reset_check_state (GtkWidget *widget, gpointer ud) { + GtkWindow *win = GTK_WINDOW (ud); + gboolean state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); + + if (state == TRUE) + gtk_window_present (win); + /* Prevent the state from actually changing */ g_signal_handlers_block_by_func (widget, reset_check_state, ud); - gboolean state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (widget), !state); g_signal_handlers_unblock_by_func (widget, reset_check_state, ud); } -static gboolean -raise_window (GtkWidget *widget, GdkEvent *ev, gpointer ud) -{ - GtkWindow *win = GTK_WINDOW (ud); - gtk_window_present_with_time (win, ((GdkEventButton *)ev)->time); - - return FALSE; -} - - static void add_menuitem (gpointer key, gpointer value, gpointer user_data) { @@ -72,9 +67,6 @@ add_menuitem (gpointer key, gpointer value, gpointer user_data) g_signal_connect (mi, "toggled", G_CALLBACK (reset_check_state), pw); - g_signal_connect (mi, "button-press-event", G_CALLBACK (raise_window), pw); - - gtk_container_add (GTK_CONTAINER(menu), mi); } @@ -98,30 +90,29 @@ repopulate_windows_menu (GObject *inst, gchar *name, gpointer data) GtkWindow *toplevel = g_object_get_data (G_OBJECT (mi), "toplevel"); GtkWidget *minimize = gtk_menu_item_new_with_mnemonic (_("_Minimize all Windows")); - GtkWidget *split = gtk_check_menu_item_new_with_mnemonic (_("_Split")); - GtkWidget *sep = gtk_separator_menu_item_new (); - + gtk_menu_attach (GTK_MENU (menu), minimize, 0, 1, 0, 1); - if (PSPPIRE_DATA_WINDOW_TYPE == G_OBJECT_TYPE (toplevel) ) + if (PSPPIRE_DATA_WINDOW_TYPE == G_OBJECT_TYPE (toplevel)) { + GtkWidget *split = gtk_check_menu_item_new_with_mnemonic (_("_Split")); gtk_menu_attach (GTK_MENU (menu), split, 0, 1, 1, 2); g_signal_connect_swapped (split, "toggled", G_CALLBACK (toggle_split_window), toplevel); } - + gtk_container_add (GTK_CONTAINER (menu), sep); gtk_menu_item_set_submenu (GTK_MENU_ITEM (mi), menu); g_object_set_data (G_OBJECT (menu), "toplevel", toplevel); - + g_hash_table_foreach (reg->name_table, add_menuitem, menu); g_signal_connect (minimize, "activate", G_CALLBACK (min_all), NULL); - + gtk_widget_show_all (GTK_WIDGET (mi)); } @@ -137,11 +128,11 @@ GtkWidget * create_windows_menu (GtkWindow *toplevel) { PsppireWindowRegister *reg = psppire_window_register_new (); - + GtkWidget *menuitem = gtk_menu_item_new_with_mnemonic (_("_Windows")); g_object_set_data (G_OBJECT (menuitem), "toplevel", toplevel); - + g_signal_connect (reg, "removed", G_CALLBACK (repopulate_windows_menu), menuitem); g_signal_connect (reg, "inserted", G_CALLBACK (repopulate_windows_menu), menuitem);