summaryrefslogtreecommitdiffstats
path: root/src/shortcuts.cpp
diff options
context:
space:
mode:
authorJabier Arraiza <jabier.arraiza@marker.es>2017-07-01 23:31:49 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2017-07-01 23:31:49 +0000
commit03bb87a0175289274132a0240628936fbccf6ca5 (patch)
tree979519e873c0ceff7a6a8b0f53252a4a5ece1143 /src/shortcuts.cpp
parentImproving CR feedback. thanks! (diff)
parentWhen running without installing, extensions will spawn correct Inkscape (diff)
downloadinkscape-03bb87a0175289274132a0240628936fbccf6ca5.tar.gz
inkscape-03bb87a0175289274132a0240628936fbccf6ca5.zip
Merge https://gitlab.com/inkscape/inkscape into selectable-knots
Diffstat (limited to 'src/shortcuts.cpp')
-rw-r--r--src/shortcuts.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/shortcuts.cpp b/src/shortcuts.cpp
index 8a8d36d5a..708e58198 100644
--- a/src/shortcuts.cpp
+++ b/src/shortcuts.cpp
@@ -626,11 +626,17 @@ static void read_shortcuts_file(char const *filename, bool const is_user_set) {
} else if (!strcmp(mod, "Meta")) {
modifiers |= SP_SHORTCUT_META_MASK;
} else if (!strcmp(mod, "Primary")) {
-#ifdef __APPLE__
- modifiers |= SP_SHORTCUT_META_MASK;
-#else
- modifiers |= SP_SHORTCUT_CONTROL_MASK;
-#endif
+ GdkModifierType mod =
+ gdk_keymap_get_modifier_mask (gdk_keymap_get_default(), GDK_MODIFIER_INTENT_PRIMARY_ACCELERATOR);
+ gdk_keymap_add_virtual_modifiers(gdk_keymap_get_default(), &mod);
+ if (mod & GDK_CONTROL_MASK)
+ modifiers |= SP_SHORTCUT_CONTROL_MASK;
+ else if (mod & GDK_META_MASK)
+ modifiers |= SP_SHORTCUT_META_MASK;
+ else {
+ g_warning("unsupported primary accelerator ");
+ modifiers |= SP_SHORTCUT_CONTROL_MASK;
+ }
} else {
g_warning("Unknown modifier %s for %s", mod, verb_name);
}