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