deskflow/src/lib
Peter Hutterer a5c9744258 fix: Account for more modifiers in the EI keymap calculation
Some modifiers, notably LevelThree, were not accounted for in the
modifier mask calculation. This leads to an incorrect keymap where some
key symbols were listed for keys without (or insufficient) modifiers.
Emulating those keys can then produce the wrong keysyms.

Reproducible with server and client on English(UK) layout and typing
e.g. [. That key has its own key AD11 (right of P) but is also on
the third level of AE08 (the 8 key). When the server sends the keyid 91
(for [) the client looks it up in the pre-generated keymap. It is found
first on the 8 key with no modifiers (because LevelThree was previously
ignored), hence the client simulates a key 8 press without modifiers.
This erroneously produced an 8 instead of the wanted [.

Fix this by ensuring that all modifiers are accounted for in the key
map. This fix is likely incomplete as it does not account for the full
virtual modifier to real modifier mappings possible (e.g. Mod5 *may* be
something other than AltGr) but it does push the can a bit further down
the road, for someone else to release the worms.

Closes: #8168
2025-08-07 15:31:52 -04:00
..
arch refactor: update log calls to LOG_... fixes #8819 2025-08-06 16:18:38 +01:00
base refactor: update log calls to LOG_... fixes #8819 2025-08-06 16:18:38 +01:00
client refactor: update log calls to LOG_... fixes #8819 2025-08-06 16:18:38 +01:00
common refactor: windows write daemon log in ProgramData\Deskflow 2025-07-21 12:41:46 +01:00
deskflow refactor: update log calls to LOG_... fixes #8819 2025-08-06 16:18:38 +01:00
gui fix: update inclusion of climits and cstdint headers 2025-08-06 13:03:52 +01:00
io refactor: remove XBASE related macros, fixes #8723 2025-06-30 20:55:06 +01:00
mt refactor: update log calls to LOG_... fixes #8819 2025-08-06 16:18:38 +01:00
net refactor: update log calls to LOG_... fixes #8819 2025-08-06 16:18:38 +01:00
platform fix: Account for more modifiers in the EI keymap calculation 2025-08-07 15:31:52 -04:00
server refactor: update log calls to LOG_... fixes #8819 2025-08-06 16:18:38 +01:00
CMakeLists.txt fix: split version info in new header 2025-07-21 12:06:01 +01:00
Config.h.in build: remove HAVE_SYS_SOCKET define should be present on all unix systems 2025-06-14 08:22:55 +01:00
VersionInfo.h.in fix: split version info in new header 2025-07-21 12:06:01 +01:00