https://bugs.winehq.org/show_bug.cgi?id=45605
--- Comment #5 from supercoolemail@seznam.cz --- Created attachment 62868 --> https://bugs.winehq.org/attachment.cgi?id=62868 Key log
log with WINEDEBUG=+key
This is possibly caused by something deeper than dinput. I've trace it here https://github.com/wine-mirror/wine/blob/master/dlls/user32/message.c#L2881
From there I went to +key and it floods logs with
0027:trace:key:X11DRV_KEYBOARD_DetectLayout mismatch for keycode 10, got L"+1!~" 0027:trace:key:X11DRV_KEYBOARD_DetectLayout mismatch for keycode 11, got L"\011b2@\02c7" 0027:trace:key:X11DRV_KEYBOARD_DetectLayout mismatch for keycode 12, got L"\01613#^" 0027:trace:key:X11DRV_KEYBOARD_DetectLayout mismatch for keycode 13, got L"\010d4$\02d8" 0027:trace:key:X11DRV_KEYBOARD_DetectLayout mismatch for keycode 14, got L"\01595%\00b0" 0027:trace:key:X11DRV_KEYBOARD_DetectLayout mismatch for keycode 15, got L"\017e6^\02db" 0027:trace:key:X11DRV_KEYBOARD_DetectLayout mismatch for keycode 16, got L"\00fd7&`" 0027:trace:key:X11DRV_KEYBOARD_DetectLayout mismatch for keycode 17, got L"\00e18*\02d9" ...and many more ofthese just with different codes
Later it logs 0009:trace:key:X11DRV_KeyEvent KeyPress : keysym=2b (plus), # of chars=1 / "+" 0009:trace:key:EVENT_event_to_vkey e->keycode = 10 0009:trace:key:X11DRV_KeyEvent keycode 10 converted to vkey 0x31 scan 02 0009:trace:key:X11DRV_send_keyboard_input hwnd 0x10058 vkey=0090 scan=0045 flags=0001 0009:trace:key:X11DRV_send_keyboard_input hwnd 0x10058 vkey=0090 scan=0045 flags=0003 0009:trace:key:X11DRV_send_keyboard_input hwnd 0x10058 vkey=0031 scan=0002 flags=0000 0009:trace:key:X11DRV_KeyEvent type 3, window 8000001, state 0x0010, keycode 10 0009:trace:key:X11DRV_KeyEvent nbyte = 1, status 0 0009:trace:key:X11DRV_KeyEvent KeyRelease : keysym=2b (plus), # of chars=1 / "+" 0009:trace:key:EVENT_event_to_vkey e->keycode = 10 0009:trace:key:X11DRV_KeyEvent keycode 10 converted to vkey 0x31 scan 02 0009:trace:key:X11DRV_send_keyboard_input hwnd 0x10058 vkey=0031 scan=0002 flags=0002 0009:trace:key:X11DRV_KeyEvent type 2, window 8000001, state 0x0010, keycode 11 0009:trace:key:X11DRV_KeyEvent XmbLookupString needs 2 byte(s) 0009:trace:key:X11DRV_KeyEvent nbyte = 2, status 4 0009:trace:key:X11DRV_KeyEvent KeyPress : keysym=1ec (ecaron), # of chars=2 / "\xc4\x9b" 0009:trace:key:EVENT_event_to_vkey e->keycode = 11 0009:trace:key:X11DRV_KeyEvent keycode 11 converted to vkey 0x32 scan 03 0009:trace:key:X11DRV_send_keyboard_input hwnd 0x10058 vkey=0032 scan=0003 flags=0000 0009:trace:key:X11DRV_KeyEvent type 3, window 8000001, state 0x0010, keycode 11 0009:trace:key:X11DRV_KeyEvent nbyte = 2, status 0 0009:trace:key:X11DRV_KeyEvent KeyRelease : keysym=1ec (ecaron), # of chars=2 / "\xc4\x9b" 0009:trace:key:EVENT_event_to_vkey e->keycode = 11 0009:trace:key:X11DRV_KeyEvent keycode 11 converted to vkey 0x32 scan 03
So 1 is translated to +, but later keys (2 to 0) are translated to locale dependent codes.