RFR: 8089373: Translation from character to key code is not sufficient

Martin Fox mfox at openjdk.org
Fri Nov 17 20:10:02 UTC 2023


On Windows a common shortcut like Ctrl+'+' could only be invoked from the main keyboard and not the numeric keypad. Toolkit.getKeyCodeForChar did not have enough context to know whether it should return a result from the main keyboard or the keypad.

This PR alters getKeyCodeForChar to pass in the code of the key the system is trying to match against. Only the Windows platform actually uses this additional information.

On the Mac the numeric keypad has always worked due to the odd way getKeyCodeForChar is implemented (until PR #1209 the keypad worked more reliably than the main keyboard). On Linux getKeyCodeForChar is a mess; neither the main keyboard or the numeric keypad work reliably. I have an upcoming PR which should make both work correctly.

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

Commit messages:
 - Added SEPARATOR to list of keypad keys
 - CharacterCombinations now work on the numeric keypad
 - Fixed Monocle
 - Merge remote-tracking branch 'upstream/master' into keypadcombo
 - Added hint to getKeyCodeForChar to enable numeric keypad

Changes: https://git.openjdk.org/jfx/pull/1289/files
 Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=1289&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8089373
  Stats: 77 lines in 19 files changed: 46 ins; 0 del; 31 mod
  Patch: https://git.openjdk.org/jfx/pull/1289.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/1289/head:pull/1289

PR: https://git.openjdk.org/jfx/pull/1289


More information about the openjfx-dev mailing list