[mutter/wip/rstrode/rhel-8.0.0: 108/117] clutter: Do not latch modifiers on modifier keys
- From: Ray Strode <halfline src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/rstrode/rhel-8.0.0: 108/117] clutter: Do not latch modifiers on modifier keys
- Date: Sun, 17 Feb 2019 17:31:54 +0000 (UTC)
commit c697d2a7a99951938ca725c06639af37a553e385
Author: Carlos Garnacho <carlosg gnome org>
Date: Wed Oct 3 22:43:21 2018 +0200
clutter: Do not latch modifiers on modifier keys
If the user maps eg. Alt+F2 to a pad button, the MetaInputSettings will
send the full Alt press, F2 press, F2 release, Alt release sequence.
However the keycode corresponding to Alt is found in level 1, so the
Shift modifier gets unintendedly latched in addition to the Alt key
press/release pair.
We could probably improve keycode lookup heuristics so level=0 (and
no modifier latching) is preferred, but we can do without it altogether
for modifier keys.
clutter/clutter/x11/clutter-virtual-input-device-x11.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/clutter/clutter/x11/clutter-virtual-input-device-x11.c
b/clutter/clutter/x11/clutter-virtual-input-device-x11.c
index b86ded0d0..e16ba3fd0 100644
--- a/clutter/clutter/x11/clutter-virtual-input-device-x11.c
+++ b/clutter/clutter/x11/clutter-virtual-input-device-x11.c
@@ -147,14 +147,16 @@ clutter_virtual_input_device_x11_notify_keyval (ClutterVirtualInputDevice *virtu
return;
}
- if (key_state == CLUTTER_KEY_STATE_PRESSED)
+ if (!_clutter_keymap_x11_get_is_modifier (keymap, keycode) &&
+ key_state == CLUTTER_KEY_STATE_PRESSED)
clutter_keymap_x11_latch_modifiers (keymap, level, TRUE);
XTestFakeKeyEvent (clutter_x11_get_default_display (),
(KeyCode) keycode,
key_state == CLUTTER_KEY_STATE_PRESSED, 0);
- if (key_state == CLUTTER_KEY_STATE_RELEASED)
+ if (!_clutter_keymap_x11_get_is_modifier (keymap, keycode) &&
+ key_state == CLUTTER_KEY_STATE_RELEASED)
clutter_keymap_x11_latch_modifiers (keymap, level, FALSE);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]