> 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: Bug fixes in Robot. Ensure symbols uncovered using Option are ignored. ------------- Changes: - all: https://git.openjdk.java.net/jfx/pull/425/files - new: https://git.openjdk.java.net/jfx/pull/425/files/1037be20..99d24ae0 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jfx&pr=425&range=05 - incr: https://webrevs.openjdk.java.net/?repo=jfx&pr=425&range=04-05 Stats: 9 lines in 1 file changed: 3 ins; 3 del; 3 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