From: Ben Pfaff Date: Sun, 28 May 2023 03:18:07 +0000 (-0700) Subject: gui: Support Ctrl+W to close windows and add File|Close to menus. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3e6026acc4802ac733dbe9d7eef1f4761e7d4791;p=pspp gui: Support Ctrl+W to close windows and add File|Close to menus. Requested by Matthias Faeth. --- diff --git a/src/ui/gui/output-window.ui b/src/ui/gui/output-window.ui index 0f04244fc7..f1fcdff203 100644 --- a/src/ui/gui/output-window.ui +++ b/src/ui/gui/output-window.ui @@ -78,6 +78,11 @@
+ + _Close + <Primary>w + win.close + _Quit <Primary>q diff --git a/src/ui/gui/psppire-data-window.c b/src/ui/gui/psppire-data-window.c index e29f469b4a..ecb9f121af 100644 --- a/src/ui/gui/psppire-data-window.c +++ b/src/ui/gui/psppire-data-window.c @@ -1311,9 +1311,17 @@ create_file_menu (PsppireDataWindow *dw) gtk_menu_attach (GTK_MENU (menu), gtk_separator_menu_item_new (), 0, 1, 12, 13); + + { + GtkWidget *close = gtk_menu_item_new_with_mnemonic (_("_Close")); + gtk_menu_attach (GTK_MENU (menu), close, 0, 1, 13, 14); + + connect_action_to_menuitem (G_ACTION_MAP (dw), "close", close, "W"); + } + { GtkWidget *quit = gtk_menu_item_new_with_mnemonic (_("_Quit")); - gtk_menu_attach (GTK_MENU (menu), quit, 0, 1, 13, 14); + gtk_menu_attach (GTK_MENU (menu), quit, 0, 1, 14, 15); connect_action_to_menuitem (G_ACTION_MAP (g_application_get_default ()), "quit", quit, "Q"); @@ -1558,6 +1566,12 @@ psppire_data_window_finish_init (PsppireDataWindow *de, g_action_map_add_action (G_ACTION_MAP (de), G_ACTION (save_as)); } + { + GSimpleAction *close_action = g_simple_action_new ("close", NULL); + g_signal_connect_swapped (close_action, "activate", G_CALLBACK (gtk_window_close), de); + g_action_map_add_action (G_ACTION_MAP (de), G_ACTION (close_action)); + } + { GSimpleAction *rename_dataset_act = g_simple_action_new ("rename-dataset", NULL); g_signal_connect_swapped (rename_dataset_act, "activate", diff --git a/src/ui/gui/psppire-output-window.c b/src/ui/gui/psppire-output-window.c index 14fc1fd0dc..a5f66fab6b 100644 --- a/src/ui/gui/psppire-output-window.c +++ b/src/ui/gui/psppire-output-window.c @@ -481,6 +481,15 @@ psppire_output_window_init (PsppireOutputWindow *window) g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (export)); } + { + GSimpleAction *close = g_simple_action_new ("close", NULL); + g_signal_connect_swapped (close, "activate", G_CALLBACK (gtk_window_close), window); + g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (close)); + + const gchar *accels[2] = { "W", NULL}; + gtk_application_set_accels_for_action (app, "win.close", accels); + } + { GSimpleAction *select_all = g_simple_action_new ("select-all", NULL); g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (select_all));