https://bugs.winehq.org/show_bug.cgi?id=32073
--- Comment #3 from Evan cerebro.alexiel@gmail.com --- Created attachment 68379 --> https://bugs.winehq.org/attachment.cgi?id=68379 VkKeyScanA(0xe7) testcase source
I gave this bug another try today with the latest wine.
I wrote a simple test program to better understand the issue. It calls GetKeyboardLayout to display what is the current keyboard layout then calls VkKeyScanA(0xe7) to show it returns different values depending on locale used.
$ locale -a <some locales are omitted here on purpose> en_US.utf8 fr_FR.utf8 fr_FR.ISO-8859-1
$ LANG=en_US.UTF-8 ./testbug64.exe GetKeyboardLayout(0) => 0x409 VkKeyScanA(0xe7) => -1
$ LANG=fr_FR.UTF-8 ./testbug64.exe GetKeyboardLayout(0) => 0x40c VkKeyScanA(0xe7) => -1
$ LANG=fr_FR.ISO-8859-1 ./testbug64.exe GetKeyboardLayout(0) => 0x40c VkKeyScanA(0xe7) => 57
57 is 0x39 which is the '9' key. On my French keyboard, this key has the following characters: 'ç'/'9'/'^'.
On my Windows 10 box, display language is "English (United Kingdom)" and keyboard layout is "French" C:\Users\me> C:\Users\me\Desktop\testbug64.exe GetKeyboardLayout(0) => 0x809 VkKeyScanA(0xe7) => 57
For reference - 0x0409: en-US - 0x040C: fr-FR - 0x0809: en-GB
I understand we are asking wine what key is associated with the 'ç' character. Depending on the keyboard layout used, it may works or not which is normal. The issue is that changing the locale changes the keyboard layout (it seems wrong to me).