switched to portable control key <Primary> for accellerators
authorFriedrich Beckmann <friedrich.beckmann@gmx.de>
Sat, 27 Jun 2020 07:44:16 +0000 (09:44 +0200)
committerFriedrich Beckmann <friedrich.beckmann@gmx.de>
Sat, 27 Jun 2020 08:00:21 +0000 (10:00 +0200)
gtk supports the "Primary" key which translates to the "CMD" key
on MacOS and "Ctrl" on linux. So this is a portable way to
say the "Copy" via key.

src/ui/gui/psppire-data-window.c
src/ui/gui/psppire-output-window.c
src/ui/gui/psppire-syntax-window.c

index 6a0d4719c9af2fe644eb7e76f0341979982499b7..2fffd790a58cbc388f04c543b89eff6ebe23a3e3 100644 (file)
@@ -1230,7 +1230,7 @@ create_file_menu (PsppireDataWindow *dw)
   }
 
   GtkWidget *open = gtk_menu_item_new_with_mnemonic (_("_Open"));
-  connect_action_to_menuitem (G_ACTION_MAP (dw), "open", open, "<Ctrl>O");
+  connect_action_to_menuitem (G_ACTION_MAP (dw), "open", open, "<Primary>O");
 
   GtkWidget *import = gtk_menu_item_new_with_mnemonic (_("_Import Data..."));
   connect_action_to_menuitem (G_ACTION_MAP (dw), "file-import", import, 0);
@@ -1241,10 +1241,10 @@ create_file_menu (PsppireDataWindow *dw)
   gtk_menu_attach (GTK_MENU (menu), gtk_separator_menu_item_new (), 0, 1, 3, 4);
 
   GtkWidget *save = gtk_menu_item_new_with_mnemonic (_("_Save..."));
-  connect_action_to_menuitem (G_ACTION_MAP (dw), "save", save, "<Ctrl>S");
+  connect_action_to_menuitem (G_ACTION_MAP (dw), "save", save, "<Primary>S");
 
   GtkWidget *save_as = gtk_menu_item_new_with_mnemonic (_("Save _As..."));
-  connect_action_to_menuitem (G_ACTION_MAP (dw), "save-as", save_as, "<Shift><Ctrl>S");
+  connect_action_to_menuitem (G_ACTION_MAP (dw), "save-as", save_as, "<Shift><Primary>S");
 
   GtkWidget *rename_dataset = gtk_menu_item_new_with_mnemonic (_("_Rename Dataset..."));
   connect_action_to_menuitem (G_ACTION_MAP (dw), "rename-dataset", rename_dataset, 0);
@@ -1328,7 +1328,7 @@ create_file_menu (PsppireDataWindow *dw)
     gtk_menu_attach (GTK_MENU (menu), quit,     0, 1, 13, 14);
 
     connect_action_to_menuitem (G_ACTION_MAP (g_application_get_default ()),
-                               "quit", quit, "<Ctrl>Q");
+                               "quit", quit, "<Primary>Q");
   }
 
   g_object_set (menuitem, "submenu", menu, NULL);
@@ -1367,6 +1367,8 @@ create_edit_menu (PsppireDataWindow *dw)
 
   {
     GtkAccelGroup *ag = gtk_accel_group_new ();
+    guint key;
+    GdkModifierType modifier;
 
     dw->mi_edit_separator = gtk_separator_menu_item_new ();
     gtk_menu_attach (GTK_MENU (menu), dw->mi_edit_separator, 0, 1, i, i + 1); ++i;
@@ -1376,20 +1378,23 @@ create_edit_menu (PsppireDataWindow *dw)
     g_signal_connect_swapped (dw->mi_cut, "activate", G_CALLBACK (on_cut), dw);
 
     gtk_window_add_accel_group (GTK_WINDOW (dw), ag);
+    gtk_accelerator_parse ("<Primary>X", &key, &modifier);
     gtk_widget_add_accelerator (dw->mi_cut, "activate", ag,
-                               'X', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
+                               key, modifier, GTK_ACCEL_VISIBLE);
 
     dw->mi_copy = gtk_menu_item_new_with_mnemonic (_("_Copy"));
     gtk_menu_attach (GTK_MENU (menu), dw->mi_copy,     0, 1, i, i + 1); ++i;
     g_signal_connect_swapped (dw->mi_copy, "activate", G_CALLBACK (on_copy), dw);
+    gtk_accelerator_parse ("<Primary>C", &key, &modifier);
     gtk_widget_add_accelerator (dw->mi_copy, "activate", ag,
-                               'C', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
+                               key, modifier, GTK_ACCEL_VISIBLE);
 
     dw->mi_paste = gtk_menu_item_new_with_mnemonic (_("_Paste"));
     gtk_menu_attach (GTK_MENU (menu), dw->mi_paste,     0, 1, i, i + 1); ++i;
     g_signal_connect_swapped (dw->mi_paste, "activate", G_CALLBACK (on_paste), dw);
+    gtk_accelerator_parse ("<Primary>V", &key, &modifier);
     gtk_widget_add_accelerator (dw->mi_paste, "activate", ag,
-                               'V', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
+                               key, modifier, GTK_ACCEL_VISIBLE);
 
     dw->mi_clear_variables = gtk_menu_item_new_with_mnemonic (_("Clear _Variables"));
     gtk_menu_attach (GTK_MENU (menu), dw->mi_clear_variables,     0, 1, i, i + 1); ++i;
index 6e2c42d7229f447f0301fd86752ec6478be21905..2c45f7cf6a835415fe3700c96b539df8238bcaec 100644 (file)
@@ -535,7 +535,7 @@ psppire_output_window_init (PsppireOutputWindow *window)
     g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (print));
 
 
-    const gchar *accels[2] = { "<Ctrl>P", NULL};
+    const gchar *accels[2] = { "<Primary>P", NULL};
     gtk_application_set_accels_for_action (app,
                                           "win.print",
                                           accels);
@@ -557,7 +557,7 @@ psppire_output_window_init (PsppireOutputWindow *window)
     GSimpleAction *copy = g_simple_action_new ("copy", NULL);
     g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (copy));
 
-    const gchar *accels[2] = { "<Ctrl>C", NULL};
+    const gchar *accels[2] = { "<Primary>C", NULL};
     gtk_application_set_accels_for_action (app,
                                           "win.copy",
                                           accels);
index 3fecfad26a5ddcdd089fa7e4bf1e8ff847d10199..f9e5db633a08e6b88b6dc483fe4f4a0c2d1a923a 100644 (file)
@@ -906,7 +906,7 @@ psppire_syntax_window_init (PsppireSyntaxWindow *window)
                              G_CALLBACK (psppire_window_save),
                              window);
 
-    const gchar *accels[2] = { "<Ctrl>S", NULL};
+    const gchar *accels[2] = { "<Primary>S", NULL};
     gtk_application_set_accels_for_action (app,
                                           "win.save",
                                           accels);
@@ -924,7 +924,7 @@ psppire_syntax_window_init (PsppireSyntaxWindow *window)
                              window);
 
 
-    const gchar *accels[2] = { "<Shift><Ctrl>S", NULL};
+    const gchar *accels[2] = { "<Shift><Primary>S", NULL};
     gtk_application_set_accels_for_action (app,
                                           "win.save_as",
                                           accels);
@@ -976,7 +976,7 @@ psppire_syntax_window_init (PsppireSyntaxWindow *window)
     g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (run_current_line));
 
     GtkApplication *app = GTK_APPLICATION (g_application_get_default ());
-    const gchar *accels[2] = { "<Ctrl>R", NULL};
+    const gchar *accels[2] = { "<Primary>R", NULL};
     gtk_application_set_accels_for_action (app,
                                           "win.run-current-line",
                                           accels);