https://bugs.winehq.org/show_bug.cgi?id=50197
Bug ID: 50197 Summary: cmd and winedbg: Unable to insert some chars (*, _) with de-adnw keyboard layout Product: Wine Version: 5.22 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winedbg Assignee: wine-bugs@winehq.org Reporter: joachim.priesner.bugs@web.de Distribution: ---
To reproduce:
$ setxkbmap de adnw
Press Caps Lock + "G" (on a US keyboard) -> An asterisk "*" is inserted.
$ wine winedbg or $ wine cmd
Press Caps Lock + "G" again. Expected: An asterisk "*" is inserted Actual: The input is ignored.
The same thing happens when trying to copy-paste an asterisk character from another application.
Effectively, I am unable to insert some characters like _ and * in winedbg.
I bisected the issue to the following commit:
commit 54e117018cd4cc58c258da92686bfad13946bde2 Author: Jacek Caban jacek@codeweavers.com Date: Mon Sep 21 17:07:29 2020 +0200
kernelbase: Use conhost to handle Unix consoles.
Maybe the following lines in programs/conhost/conhost.c are responsible:
+ if (ir.Event.KeyEvent.uChar.UnicodeChar && !(ir.Event.KeyEvent.dwControlKeyState & LEFT_ALT_PRESSED)) + edit_line_insert( console, &ir.Event.KeyEvent.uChar.UnicodeChar, 1 );
introduced by commit 01d203eebf60a4f07be658e6a66d50909c90cf75 Author: Jacek Caban jacek@codeweavers.com Date: Mon Sep 14 18:46:04 2020 +0200
conhost: Introduce IOCTL_CONDRV_READ_CONSOLE ioctl.
It seems that the LEFT_ALT_PRESSED flag is set for that particular key combination although I did not press the left alt key (but rather Caps Lock).