RFR: 8278938: [Win] Robot can target wrong key for punctuation and symbols

Martin Fox duke at openjdk.java.net
Thu Dec 23 20:57:35 UTC 2021


When processing a `WM_CHAR` event on an OEM key (punctuation, symbol, dead key) the glass code will dynamically query the key's unshifted character to determine the Java code to assign to it. This is necessary since the relationship between OEM key codes and the characters they generate varies from layout to layout.

The Robot implementation was consulting a table which assumed a fixed relationship between Java codes and Windows key codes even for the OEM keys. The table was also missing entries for any Java code not on a US QWERTY layout, like PLUS.

In this PR if we don't find the Java code in the table or if it maps to an OEM key (which may be wrong) we sweep through all the OEM keys looking for the matching Java code.

-------------

Commit messages:
 - Robot now targets punctuation and symbol keys reliably

Changes: https://git.openjdk.java.net/jfx/pull/702/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jfx&pr=702&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8278938
  Stats: 180 lines in 3 files changed: 116 ins; 57 del; 7 mod
  Patch: https://git.openjdk.java.net/jfx/pull/702.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/702/head:pull/702

PR: https://git.openjdk.java.net/jfx/pull/702


More information about the openjfx-dev mailing list