RFR: 8274967: KeyCharacterCombinations for punctuation and symbols fail on non-US keyboards
Martin Fox
duke at openjdk.org
Wed Nov 1 00:02:11 UTC 2023
On Tue, 17 Oct 2023 20:21:30 GMT, Martin Fox <duke at openjdk.org> wrote:
> After finding the Window virtual key code for a character getKeyCodeForChar was using a mapping table that only works correctly for U.S. English to retrieve the Java key code. This caused getKeyCodeForChar to encode keys differently than the original key event handling machinery.
>
> With this fix the Robot, getKeyCodeForChar, and the code that handles platform key events all agree on how Windows VK codes should map to Java codes.
>
> The manual KeyboardTest app can be used to test this (tests/manual/events). Run the tests by selecting "without keypad combinations" in the second dropdown. This will use a Robot to test KeyCharacterCombinations excluding the numeric keypad (which is a separate issue).
Yes, that's expected. The \ key on the U.S. layout is in the same position as the * key on the French layout (on Windows).
Mac and Linux both have nice little keyboard viewing tools that you can pull up so you can see how all the keys change as you switch between layouts. I haven't found such a utility for Windows and it gets confusing.
-------------
PR Comment: https://git.openjdk.org/jfx/pull/1264#issuecomment-1788193298
More information about the openjfx-dev
mailing list