summaryrefslogtreecommitdiffstats
path: root/src/shortcuts.cpp
diff options
context:
space:
mode:
authorSylvain Chiron <chironsylvain@orange.fr>2017-07-01 12:08:02 +0000
committerSylvain Chiron <chironsylvain@orange.fr>2017-07-01 12:08:02 +0000
commitb311d097b148a2cf5213ca86a45cb562bdd02986 (patch)
tree56b5c507727a852325a093ddedd2c3f44793c4ce /src/shortcuts.cpp
parentUpdated libs from the Adaptagrams project: libavoid, libcola and libvspc; cha... (diff)
parentFix a compiling error on debian testing (diff)
downloadinkscape-b311d097b148a2cf5213ca86a45cb562bdd02986.tar.gz
inkscape-b311d097b148a2cf5213ca86a45cb562bdd02986.zip
Merge branch 'master' of gitlab.com:inkscape/inkscape
Diffstat (limited to 'src/shortcuts.cpp')
-rw-r--r--src/shortcuts.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/shortcuts.cpp b/src/shortcuts.cpp
index f8a647040..8a8d36d5a 100644
--- a/src/shortcuts.cpp
+++ b/src/shortcuts.cpp
@@ -122,6 +122,12 @@ unsigned int sp_gdkmodifier_to_shortcut(guint accel_key, Gdk::ModifierType gdkmo
SP_SHORTCUT_SHIFT_MASK : 0 ) |
( gdkmodifier & GDK_CONTROL_MASK ?
SP_SHORTCUT_CONTROL_MASK : 0 ) |
+ ( gdkmodifier & GDK_SUPER_MASK ?
+ SP_SHORTCUT_SUPER_MASK : 0 ) |
+ ( gdkmodifier & GDK_HYPER_MASK ?
+ SP_SHORTCUT_HYPER_MASK : 0 ) |
+ ( gdkmodifier & GDK_META_MASK ?
+ SP_SHORTCUT_META_MASK : 0 ) |
( gdkmodifier & GDK_MOD1_MASK ?
SP_SHORTCUT_ALT_MASK : 0 );
@@ -138,6 +144,12 @@ Glib::ustring sp_shortcut_to_label(unsigned int const shortcut) {
modifiers += "Shift,";
if (shortcut & SP_SHORTCUT_ALT_MASK)
modifiers += "Alt,";
+ if (shortcut & SP_SHORTCUT_SUPER_MASK)
+ modifiers += "Super,";
+ if (shortcut & SP_SHORTCUT_HYPER_MASK)
+ modifiers += "Hyper,";
+ if (shortcut & SP_SHORTCUT_META_MASK)
+ modifiers += "Meta,";
if(modifiers.length() > 0 &&
modifiers.find(',',modifiers.length()-1)!=modifiers.npos) {
@@ -607,6 +619,18 @@ static void read_shortcuts_file(char const *filename, bool const is_user_set) {
modifiers |= SP_SHORTCUT_SHIFT_MASK;
} else if (!strcmp(mod, "Alt")) {
modifiers |= SP_SHORTCUT_ALT_MASK;
+ } else if (!strcmp(mod, "Super")) {
+ modifiers |= SP_SHORTCUT_SUPER_MASK;
+ } else if (!strcmp(mod, "Hyper")) {
+ modifiers |= SP_SHORTCUT_HYPER_MASK;
+ } 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
} else {
g_warning("Unknown modifier %s for %s", mod, verb_name);
}
@@ -694,6 +718,9 @@ sp_shortcut_get_modifiers(unsigned int const shortcut)
return static_cast<GdkModifierType>(
((shortcut & SP_SHORTCUT_SHIFT_MASK) ? GDK_SHIFT_MASK : 0) |
((shortcut & SP_SHORTCUT_CONTROL_MASK) ? GDK_CONTROL_MASK : 0) |
+ ((shortcut & SP_SHORTCUT_SUPER_MASK) ? GDK_SUPER_MASK : 0) |
+ ((shortcut & SP_SHORTCUT_HYPER_MASK) ? GDK_HYPER_MASK : 0) |
+ ((shortcut & SP_SHORTCUT_META_MASK) ? GDK_META_MASK : 0) |
((shortcut & SP_SHORTCUT_ALT_MASK) ? GDK_MOD1_MASK : 0)
);
}