diff options
author | Ran Benita <ran234@gmail.com> | 2014-02-06 01:48:32 +0200 |
---|---|---|
committer | Ran Benita <ran234@gmail.com> | 2014-10-03 00:15:36 +0300 |
commit | b3f2396588a1e5f3f7570b0344eb7c43702d439b (patch) | |
tree | 5be9c99444576e566da6286cd5635360be3f6139 /src | |
parent | 94a8e01c52b3f703d224b2bc836becdfb79a4e17 (diff) | |
download | xorg-lib-libxkbcommon-b3f2396588a1e5f3f7570b0344eb7c43702d439b.tar.gz |
keysym: add function to test if a keysym is for a modifier
Needed for compose.
Signed-off-by: Ran Benita <ran234@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/keysym.c | 12 | ||||
-rw-r--r-- | src/keysym.h | 3 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/keysym.c b/src/keysym.c index 6f2075c..db0e973 100644 --- a/src/keysym.c +++ b/src/keysym.c @@ -223,6 +223,18 @@ xkb_keysym_is_keypad(xkb_keysym_t keysym) return keysym >= XKB_KEY_KP_Space && keysym <= XKB_KEY_KP_Equal; } + +bool +xkb_keysym_is_modifier(xkb_keysym_t keysym) +{ + return + (keysym >= XKB_KEY_Shift_L && keysym <= XKB_KEY_Hyper_R) || + /* libX11 only goes upto XKB_KEY_ISO_Level5_Lock. */ + (keysym >= XKB_KEY_ISO_Lock && keysym <= XKB_KEY_ISO_Last_Group_Lock) || + keysym == XKB_KEY_Mode_switch || + keysym == XKB_KEY_Num_Lock; +} + static void XConvertCase(xkb_keysym_t sym, xkb_keysym_t *lower, xkb_keysym_t *upper); diff --git a/src/keysym.h b/src/keysym.h index e9374dc..ca2bd5e 100644 --- a/src/keysym.h +++ b/src/keysym.h @@ -59,6 +59,9 @@ xkb_keysym_is_upper(xkb_keysym_t keysym); bool xkb_keysym_is_keypad(xkb_keysym_t keysym); +bool +xkb_keysym_is_modifier(xkb_keysym_t keysym); + xkb_keysym_t xkb_keysym_to_upper(xkb_keysym_t ks); |