RFR: DRAFT 8274967: KeyCharacterCombinations for punctuation and symbols fail on non-US keyboards
Martin Fox
duke at openjdk.java.net
Fri Dec 17 18:29:22 UTC 2021
On Mon, 15 Nov 2021 20:13:11 GMT, Martin Fox <duke at openjdk.java.net> wrote:
> The code that maps from a Windows virtual key code to a Java key code in `getKeyCodeForChar` did not match the similar code in `ViewContainer::HandleViewKeyEvent`. The OEM keys are assigned to printable punctuation and symbols in ways which vary across layouts and even keyboards. To determine the correct Java key code you have to query the layout to determine the character the key would generate without modifiers and map that character to the key code. `ViewContainer::HandleViewKeyEvent` did this, `getKeyCodeForChar` did not. This PR copies a few snippets of code from `ViewContainer::HandleViewKeyEvent` to make the two algorithms match.
Marking this as DRAFT since this code could be superseded by #694. The review cycles weren't wasted since similar code will re-appear in the PR for [JDK-8278938](https://bugs.openjdk.java.net/browse/JDK-8278938) which fixes the way the Robot code resolves JavaFX KeyCodes.
(And I was wrong when I wrote that `MapVirtualKeyEx` doesn't inform me of dead keys. I must have fumbled my testing. Mea culpa.)
-------------
PR: https://git.openjdk.java.net/jfx/pull/672
More information about the openjfx-dev
mailing list