RFR: 8087700: [KeyCombination, Mac] KeyCharacterCombinations behave erratically
Martin Fox
mfox at openjdk.org
Sat Nov 25 20:44:17 UTC 2023
On Sat, 25 Nov 2023 19:13:42 GMT, yosbits <duke at openjdk.org> wrote:
>> A KeyCharacterCombination should match a key if the target character is printed on that key. For example, the user should be able to invoke the `Shortcut+'+' ` combination by holding down the Shortcut key and pressing a key that has '+' printed on it. This should work even if '+' is a shifted symbol but the user doesn't hold down the Shift key.
>>
>> The Mac implements KeyCharacterCombinations by monitoring keystrokes to discover the relationship between keys and characters. Currently the system only records the character the user typed and no other characters on the same key. This means a shortcut targeting a shifted character may not work until the user types that character using Shift so the system learns the relationship.
>>
>> This PR keeps the same mechanism in place but always records the shifted and unshifted character for each keystroke.
>>
>> For the Mac the KeyboardTest app was modified to remove tests for characters accessed using Option. We don't look for these characters because under the hood just about every key has some symbol assigned to the Option modifier that the user probably isn't even aware of. For these character we fall back to the existing logic; once the user types the character it will start working as a shortcut.
>
> !! **This PR causes block-level problems in Japanese environment.**
>
> When Japanese IME is turned on,
> key input is ignored when Japanese IME is turned on after merging this PR.
> I verified that the problem does not reproduce by reverting to the code before applying this PR.
>
> @kevinrushforth @andy-goryachev-oracle
@yososs I can't reproduce this with my test apps or with the MonkeyTester. I tried both Kana and Romaji on macOS 14 but didn't try every possible input mode.
- Which version of macOS are you using?
- Which input method and mode are you using?
- What KeyCharacterCombinations does your app use?
-------------
PR Comment: https://git.openjdk.org/jfx/pull/1209#issuecomment-1826415920
More information about the openjfx-dev
mailing list