diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2019-08-29 08:34:25 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-29 08:34:25 +0200 |
commit | c475f89ff7e0fc4b2955539469b9c227295cb5e3 (patch) | |
tree | 304bdd016b99816946f5ee7b4e6861fa2bbf09a5 | |
parent | 7995ce03f353b5c56ee0984e6fcc4ca3fb2ae081 (diff) | |
parent | bd63d3e1ec50eda33f6c300b90a69e791b9d969c (diff) |
Merge pull request #31740 from bruvzg/x11_mod_keys
Fix modifier keys causing key-code mismatch on Linux/X11.
-rw-r--r-- | platform/x11/os_x11.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/platform/x11/os_x11.cpp b/platform/x11/os_x11.cpp index ca72393e43..dfa0a45538 100644 --- a/platform/x11/os_x11.cpp +++ b/platform/x11/os_x11.cpp @@ -1757,7 +1757,10 @@ void OS_X11::handle_key_event(XKeyEvent *p_event, bool p_echo) { // XLookupString returns keysyms usable as nice scancodes/ char str[256 + 1]; - XLookupString(xkeyevent, str, 256, &keysym_keycode, NULL); + XKeyEvent xkeyevent_no_mod = *xkeyevent; + xkeyevent_no_mod.state &= ~ShiftMask; + xkeyevent_no_mod.state &= ~ControlMask; + XLookupString(&xkeyevent_no_mod, str, 256, &keysym_keycode, NULL); // Meanwhile, XLookupString returns keysyms useful for unicode. |