https://bugs.winehq.org/show_bug.cgi?id=46046
Bug ID: 46046 Summary: Keys which have valid keysyms (and unicode character) not works, if they not fit to 101key-like layout Product: Wine Version: 3.18 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winex11.drv Assignee: wine-bugs@winehq.org Reporter: avnick@gmail.com Distribution: ---
I have custom (written via XKB) keyboard layout, based on US, but have extra 33 keys for cyrillic symbols allocated from unused scancodes (210-243 range). All of them have proper keysyms, and issue proper unicode characters (so XLookupString/XmbLookupString return valid values). But wine completely ignores all of them (tested on notepad).
I include log, produced by following command: WINEDEBUG=+key,+keyboard,+xim wine notepad.exe >notepad.log 2>&1
(Inside notepad I typed "hello" and "привет" delimited by "Return" key. Russian word contain following keys [Cyrillic_pe, Cyrillic_er, Cyrillic_i, Cyrillic_ve, Cyrillic_ie, Cyrillic_te]).
As well, I include my patch (which looks very brute force), which mark all these keys to VK_NONCONVERTABLE (just unused VK) and preserve scancode in unused event field, then restore all back inside ToUnicodeEx). I clearly understand, that my solution is bad, and create this report to look for appropriate fix.
https://bugs.winehq.org/show_bug.cgi?id=46046
--- Comment #1 from Alexander Nikolaev avnick@gmail.com --- Created attachment 62619 --> https://bugs.winehq.org/attachment.cgi?id=62619 preserve-scancodes.diff
Patch which I used to solve issue myself
https://bugs.winehq.org/show_bug.cgi?id=46046
--- Comment #2 from Alexander Nikolaev avnick@gmail.com --- Created attachment 62620 --> https://bugs.winehq.org/attachment.cgi?id=62620 rdp.xkb
xkb symbols set used.
https://bugs.winehq.org/show_bug.cgi?id=46046
--- Comment #3 from Alexander Nikolaev avnick@gmail.com --- Created attachment 62621 --> https://bugs.winehq.org/attachment.cgi?id=62621 notepad.log
Log of `WINEDEBUG=+key,+keyboard,+xim wine notepad.exe`