RFR: 8244735: Error on iOS passing keys with unicode values greater than 255

Jose Pereda jpereda at openjdk.java.net
Mon May 11 12:56:57 UTC 2020


With this PR, we pass directly the 16-bit unsigned short for a character (unicode value) to the Java layer, avoiding
the cast with the C++ 8-bit char, that fails for non-ascii characters like euro (€) or quote (").

We also avoid the mapping between iOS keys and JavaFX `KeyCode`, except for `ENTER` and `BACK_SPACE`, as the mapping
for some keys was wrong, like for "%", with ascii value 0x25, that was mapped to KeyCode.LEFT.

Finally, the iOS keyboard is set to `UIKeyboardTypeASCIICapable`, to prevent the display of the emoji keyboard, that
can't be currently processed.

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

Commit messages:
 - Set iOS keyboard type
 - Pass the unicode value of iOS 16-bit chars directly to the Java layer, without keyCode value (except for enter and backspace)

Changes: https://git.openjdk.java.net/jfx/pull/217/files
 Webrev: https://webrevs.openjdk.java.net/jfx/217/webrev.00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8244735
  Stats: 39 lines in 6 files changed: 20 ins; 7 del; 12 mod
  Patch: https://git.openjdk.java.net/jfx/pull/217.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/217/head:pull/217

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


More information about the openjfx-dev mailing list