RFR: 8150709: Mac OSX and German Keyboard Layout (Y/Z) [v2]
Martin Fox
github.com+12087024+beldenfox at openjdk.java.net
Mon Mar 15 21:44:26 UTC 2021
> This PR adds code to ensure that KeyCodeCombinations match KeyEvents as expected by more accurately mapping from a Mac key code to a Java key code based on the user’s active keyboard layout (the existing code assumes a US QWERTY layout). The new code first identifies a set of Mac keys which can produce different characters based on the user’s keyboard layout. A Mac key code outside that area is processed exactly as before. For a key inside the layout-sensitive area the code calls UCKeyTranslate to translate the key to an unshifted ASCII character based on the active keyboard and uses that to determine the Java key code.
>
> When performing the reverse mapping for the Robot the code first uses the old QWERTY mapping to find a candidate key. If it lies in the layout-sensitive area the code then scans the entire area calling UCKeyTranslate until it finds a match. If the key lies outside the layout-sensitive area it’s processed exactly as before.
>
> There are multiple duplicates of these bugs logged against Mac applications built with JavaFX.
>
> https://bugs.openjdk.java.net/browse/JDK-8090257 Mac: Inconsistent KeyEvents with alternative keyboard layouts
> https://bugs.openjdk.java.net/browse/JDK-8088120 [Accelerator, Mac] CMD + Z accelerator is not working with French keyboard
> https://bugs.openjdk.java.net/browse/JDK-8087915 Mac: accelerator doesn't take into account azerty keyboard layout
> https://bugs.openjdk.java.net/browse/JDK-8150709 Mac OSX and German Keyboard Layout (Y/Z)
Martin Fox has updated the pull request incrementally with one additional commit since the last revision:
The code now queries both the shifted and unshifted characters for a key
favoring digits and letters over everything else. This ensures we catch
the digits on the French layout without interfering with Dvorak.
-------------
Changes:
- all: https://git.openjdk.java.net/jfx/pull/425/files
- new: https://git.openjdk.java.net/jfx/pull/425/files/b2254109..6238c49c
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jfx&pr=425&range=01
- incr: https://webrevs.openjdk.java.net/?repo=jfx&pr=425&range=00-01
Stats: 51 lines in 1 file changed: 24 ins; 17 del; 10 mod
Patch: https://git.openjdk.java.net/jfx/pull/425.diff
Fetch: git fetch https://git.openjdk.java.net/jfx pull/425/head:pull/425
PR: https://git.openjdk.java.net/jfx/pull/425
More information about the openjfx-dev
mailing list