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.
}
GtkWidget *open = gtk_menu_item_new_with_mnemonic (_("_Open"));
}
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);
GtkWidget *import = gtk_menu_item_new_with_mnemonic (_("_Import Data..."));
connect_action_to_menuitem (G_ACTION_MAP (dw), "file-import", import, 0);
gtk_menu_attach (GTK_MENU (menu), gtk_separator_menu_item_new (), 0, 1, 3, 4);
GtkWidget *save = gtk_menu_item_new_with_mnemonic (_("_Save..."));
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..."));
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);
GtkWidget *rename_dataset = gtk_menu_item_new_with_mnemonic (_("_Rename Dataset..."));
connect_action_to_menuitem (G_ACTION_MAP (dw), "rename-dataset", rename_dataset, 0);
gtk_menu_attach (GTK_MENU (menu), quit, 0, 1, 13, 14);
connect_action_to_menuitem (G_ACTION_MAP (g_application_get_default ()),
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);
}
g_object_set (menuitem, "submenu", menu, NULL);
{
GtkAccelGroup *ag = gtk_accel_group_new ();
{
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;
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;
g_signal_connect_swapped (dw->mi_cut, "activate", G_CALLBACK (on_cut), dw);
gtk_window_add_accel_group (GTK_WINDOW (dw), ag);
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,
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);
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,
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);
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,
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;
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;
g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (print));
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);
gtk_application_set_accels_for_action (app,
"win.print",
accels);
GSimpleAction *copy = g_simple_action_new ("copy", NULL);
g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (copy));
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);
gtk_application_set_accels_for_action (app,
"win.copy",
accels);
G_CALLBACK (psppire_window_save),
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);
gtk_application_set_accels_for_action (app,
"win.save",
accels);
- 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);
gtk_application_set_accels_for_action (app,
"win.save_as",
accels);
g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (run_current_line));
GtkApplication *app = GTK_APPLICATION (g_application_get_default ());
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);
gtk_application_set_accels_for_action (app,
"win.run-current-line",
accels);