[regression][input] modifier key not taken into account when typing to fast
On gnome-shell 3.28.1, when I use keyboard macro (send keystroke very quickly) the modifier keys aren't taken into account.
Shift+, → , instead of <
Event: time 1523785942.236209, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1523785942.236209, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 1
Event: time 1523785942.236209, -------------- SYN_REPORT ------------
Event: time 1523785942.237034, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70036
Event: time 1523785942.237034, type 1 (EV_KEY), code 51 (KEY_COMMA), value 1
Event: time 1523785942.237034, -------------- SYN_REPORT ------------
Event: time 1523785942.238016, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70036
Event: time 1523785942.238016, type 1 (EV_KEY), code 51 (KEY_COMMA), value 0
Event: time 1523785942.238016, -------------- SYN_REPORT ------------
Event: time 1523785942.239014, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1523785942.239014, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 0
Event: time 1523785942.239014, -------------- SYN_REPORT ------------
,
I git bisect the regression to the commit 36c7d65c (related to issue #115 (closed))
commit 36c7d65ccf7d3927dc9b6a9356291b92ae249c94
Author: Carlos Garnacho <carlosg@gnome.org>
Date: Thu Mar 15 14:01:51 2018 +0100
inputMethod: Pass all key events through the current IM method
Even though we are using an "xkb" source, it still makes sense to
pass the event through the IBus simple engine, in order to let it
handle compose keys and ctrl+shift+[u|e].
https://gitlab.gnome.org/GNOME/gnome-shell/issues/115
Closes: #115
diff --git a/js/misc/inputMethod.js b/js/misc/inputMethod.js
index addc20f4e..621483243 100644
--- a/js/misc/inputMethod.js
+++ b/js/misc/inputMethod.js
@@ -188,8 +188,7 @@ var InputMethod = new Lang.Class({
vfunc_filter_key_event(event) {
if (!this._context || !this._enabled)
return false;
- if (!this._currentSource ||
- this._currentSource.type == Keyboard.INPUT_SOURCE_TYPE_XKB)
+ if (!this._currentSource)
return false;
let state = event.get_state();
With gnome-shell 3.28.0 or 3.28.1 with 36c7d65c reverted:
Event: time 1523786131.349189, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1523786131.349189, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 1
Event: time 1523786131.349189, -------------- SYN_REPORT ------------
Event: time 1523786131.350028, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70036
Event: time 1523786131.350028, type 1 (EV_KEY), code 51 (KEY_COMMA), value 1
Event: time 1523786131.350028, -------------- SYN_REPORT ------------
Event: time 1523786131.351015, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70036
Event: time 1523786131.351015, type 1 (EV_KEY), code 51 (KEY_COMMA), value 0
Event: time 1523786131.351015, -------------- SYN_REPORT ------------
Event: time 1523786131.351951, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1523786131.351951, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 0
Event: time 1523786131.351951, -------------- SYN_REPORT ------------
<