diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2018-04-26 20:50:36 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2018-04-26 20:50:36 +0200 |
commit | d83c5fcc90763a604e6156e56e23f9ca45b18321 (patch) | |
tree | 991cdaf675c75f19f7b30bb403d52d0f93343eba | |
parent | 20176d0395294b9eeb7f0e28f1a1a35705fa0888 (diff) | |
download | mutter-wip/carlosg/keep-depressed-mods-depressed.tar.gz |
clutter: Keep depressed mods across keymap changeswip/carlosg/keep-depressed-mods-depressed
Those are, evidently, depressed. Forgetting about those when the keymap
changes does no good to them, nor the stuff we are typing.
-rw-r--r-- | clutter/clutter/evdev/clutter-device-manager-evdev.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/clutter/clutter/evdev/clutter-device-manager-evdev.c b/clutter/clutter/evdev/clutter-device-manager-evdev.c index bc9549de9..7f253a6be 100644 --- a/clutter/clutter/evdev/clutter-device-manager-evdev.c +++ b/clutter/clutter/evdev/clutter-device-manager-evdev.c @@ -2276,6 +2276,7 @@ clutter_evdev_update_xkb_state (ClutterDeviceManagerEvdev *manager_evdev) ClutterSeatEvdev *seat; xkb_mod_mask_t latched_mods; xkb_mod_mask_t locked_mods; + xkb_mod_mask_t depressed_mods; priv = manager_evdev->priv; @@ -2283,6 +2284,8 @@ clutter_evdev_update_xkb_state (ClutterDeviceManagerEvdev *manager_evdev) { seat = iter->data; + depressed_mods = xkb_state_serialize_mods (seat->xkb, + XKB_STATE_MODS_DEPRESSED); latched_mods = xkb_state_serialize_mods (seat->xkb, XKB_STATE_MODS_LATCHED); locked_mods = xkb_state_serialize_mods (seat->xkb, @@ -2291,7 +2294,7 @@ clutter_evdev_update_xkb_state (ClutterDeviceManagerEvdev *manager_evdev) seat->xkb = xkb_state_new (priv->keymap); xkb_state_update_mask (seat->xkb, - 0, /* depressed */ + depressed_mods, latched_mods, locked_mods, 0, 0, seat->layout_idx); |