RFR: 8087700: [KeyCombination, Mac] KeyCharacterCombinations behave erratically

Andy Goryachev angorya at openjdk.org
Tue Nov 14 21:06:46 UTC 2023


On Tue, 14 Nov 2023 20:26:00 GMT, Martin Fox <mfox at openjdk.org> wrote:

>> It looks like the scope of this change went beyond the original problem in JBS.
>> Would it be possible to update the JBS ticket with the information in this PR description?
>
> @andy-goryachev-oracle You're right, this PR also deals with the problem of the map retaining stale entries when the user switches layout. I added details about this to the JBS ticket. We could treat it as a separate bug if you want, to me it's just the sort of standard housekeeping one does when caching information.
> 
> I also added a note about the KeyboardTest app. This PR scales back that test a bit but this is the first time we've been able to run the KeyCharacterCombinations on the Mac so that portion is basically a new test.
> 
> Let me know if you want further information in the JBS ticket.

@beldenfox thank you.  I still not entirely sure what issue is being tested and how to fix it, between this PR and JBS.
For example, when I run the application listed in JBS description with your fix, I get one "HI" - is it expected?  (I also get 1 "HI" on Windows)

On macOS, new KeyCodeCombination(KeyCode.MINUS, KeyCombination.CONTROL_DOWN) does not equal to new KeyCharacterCombination("-", KeyCombination.CONTROL_DOWN) (same on Windows)

Interestingly, Ctrl+- on macOS with the US keyboard produces


KeyEvent{type=KEY_PRESSED, character=<\u00>, text=, code=CONTROL, control}
KeyEvent{type=KEY_PRESSED, character=<\u00>, text=, code=MINUS, control}
KeyEvent{type=KEY_TYPED, character=<\u1F>, text=, code=UNDEFINED, control}
KeyEvent{type=KEY_RELEASED, character=<\u00>, text=, code=MINUS, control}
KeyEvent{type=KEY_RELEASED, character=<\u00>, text=, code=CONTROL}


but on Windows, we don't get KEY_TYPED event:

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

PR Comment: https://git.openjdk.org/jfx/pull/1209#issuecomment-1811296143


More information about the openjfx-dev mailing list