diff options
author | Olivier Fourdan <ofourdan@redhat.com> | 2018-04-17 14:03:12 +0200 |
---|---|---|
committer | Olivier Fourdan <ofourdan@redhat.com> | 2018-05-15 10:26:29 +0200 |
commit | 2dd9fc17c17cbc9b09f8a364682c5759d6539a8d (patch) | |
tree | 0ae709b1924444f9f3d06fa79dd62999ff8917c2 | |
parent | c7a38c31398871d2461b66963756816d268f524e (diff) | |
download | mutter-2dd9fc17c17cbc9b09f8a364682c5759d6539a8d.tar.gz |
clutter/evdev: Don't ignore CAPS lock as modifier
Mark CAPS lock as a modifier (as it should) so that when using XKB
options to change the default behaviour of CAPS lock, the new assigned
key can by used as a sticky key as well.
Closes: https://gitlab.gnome.org/GNOME/mutter/issues/112
(cherry picked from commit 6df2b7af556bf01f8d564b86c66c293678ab6b90)
-rw-r--r-- | clutter/clutter/evdev/clutter-input-device-evdev.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/clutter/clutter/evdev/clutter-input-device-evdev.c b/clutter/clutter/evdev/clutter-input-device-evdev.c index e5dee650f..51c7e942c 100644 --- a/clutter/clutter/evdev/clutter-input-device-evdev.c +++ b/clutter/clutter/evdev/clutter-input-device-evdev.c @@ -433,6 +433,8 @@ key_event_is_modifier (ClutterEvent *event) case XKB_KEY_Super_R: case XKB_KEY_Hyper_L: case XKB_KEY_Hyper_R: + case XKB_KEY_Caps_Lock: + case XKB_KEY_Shift_Lock: return TRUE; default: return FALSE; @@ -584,6 +586,12 @@ handle_stickykeys_press (ClutterEvent *event, } depressed_mods = xkb_state_serialize_mods (seat->xkb, XKB_STATE_MODS_DEPRESSED); + /* Ignore the lock modifier mask, that one cannot be sticky, yet the + * CAPS_LOCK key itself counts as a modifier as it might be remapped + * to some other modifier which can be sticky. + */ + depressed_mods &= ~CLUTTER_LOCK_MASK; + new_latched_mask = device->stickykeys_latched_mask; new_locked_mask = device->stickykeys_locked_mask; |