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