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

Michael Strauß mstrauss at openjdk.org
Mon Feb 19 11:23:04 UTC 2024


On Fri, 9 Feb 2024 03:37:17 GMT, Martin Fox <mfox at openjdk.org> wrote:

>> 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.
>
> Martin Fox has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains seven additional commits since the last revision:
> 
>  - Consistent terminology and more details in comments.
>  - Merge remote-tracking branch 'upstream/master' into keypadcombo
>  - 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

Looks good to me.

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

Marked as reviewed by mstrauss (Committer).

PR Review: https://git.openjdk.org/jfx/pull/1289#pullrequestreview-1888180397


More information about the openjfx-dev mailing list