diff options
author | Olivier Fourdan <fourdan.olivier@wanadoo.fr> | 2006-03-24 22:55:04 +0000 |
---|---|---|
committer | Olivier Fourdan <fourdan.olivier@wanadoo.fr> | 2006-03-24 22:55:04 +0000 |
commit | 6e9be4af1f34c2446a504fa782ee476ba6badd3a (patch) | |
tree | 9598c76d7871e55c9bebbbb808a1d7cbee922922 /src/keyboard.c | |
parent | 31359a08b8423875084b65997408fc991a45697d (diff) | |
download | xfwm4-6e9be4af1f34c2446a504fa782ee476ba6badd3a.tar.gz |
Make the modifier for clickand move configurable, and rework the wmtweaks plugin.
(Old svn revision: 20535)
Diffstat (limited to 'src/keyboard.c')
-rw-r--r-- | src/keyboard.c | 107 |
1 files changed, 58 insertions, 49 deletions
diff --git a/src/keyboard.c b/src/keyboard.c index e8625fa52..6484f8e67 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -38,6 +38,63 @@ unsigned int ScrollLockMask; unsigned int SuperMask; unsigned int HyperMask; +int +getModifierMap (char *str) +{ + gchar *tmp; + int map = 0; + + tmp = g_ascii_strdown ((gchar *) str, -1); + + if (strstr (tmp, "shift")) + { + map |= ShiftMask; + } + if (strstr (tmp, "control")) + { + map |= ControlMask; + } + if (strstr (tmp, "alt")) + { + map |= AltMask; + } + if (strstr (tmp, "meta")) + { + map |= MetaMask; + } + if (strstr (tmp, "super")) + { + map |= SuperMask; + } + if (strstr (tmp, "hyper")) + { + map |= HyperMask; + } + if (strstr (tmp, "mod1")) + { + map |= Mod1Mask; + } + if (strstr (tmp, "mod2")) + { + map |= Mod2Mask; + } + if (strstr (tmp, "mod3")) + { + map |= Mod3Mask; + } + if (strstr (tmp, "mod4")) + { + map |= Mod4Mask; + } + if (strstr (tmp, "mod5")) + { + map |= Mod5Mask; + } + g_free (tmp); + + return map; +} + void parseKeyString (Display * dpy, MyKey * key, char *str) { @@ -62,56 +119,8 @@ parseKeyString (Display * dpy, MyKey * key, char *str) if (k) { /* There is a modifier */ - gchar *tmp; - - tmp = g_ascii_strdown ((gchar *) str, -1); - key->keycode = XKeysymToKeycode (dpy, XStringToKeysym (++k)); - if (strstr (tmp, "shift")) - { - key->modifier = key->modifier | ShiftMask; - } - if (strstr (tmp, "control")) - { - key->modifier = key->modifier | ControlMask; - } - if (strstr (tmp, "alt")) - { - key->modifier = key->modifier | AltMask; - } - if (strstr (tmp, "meta")) - { - key->modifier = key->modifier | MetaMask; - } - if (strstr (tmp, "super")) - { - key->modifier = key->modifier | SuperMask; - } - if (strstr (tmp, "hyper")) - { - key->modifier = key->modifier | HyperMask; - } - if (strstr (tmp, "mod1")) - { - key->modifier = key->modifier | Mod1Mask; - } - if (strstr (tmp, "mod2")) - { - key->modifier = key->modifier | Mod2Mask; - } - if (strstr (tmp, "mod3")) - { - key->modifier = key->modifier | Mod3Mask; - } - if (strstr (tmp, "mod4")) - { - key->modifier = key->modifier | Mod4Mask; - } - if (strstr (tmp, "mod5")) - { - key->modifier = key->modifier | Mod5Mask; - } - g_free (tmp); + key->modifier = getModifierMap (str); } else { |