On Mon, 7 Jul 2025 16:59:13 GMT, Martin Fox <m...@openjdk.org> wrote:
>> The Mac platform code figures out where characters are on the keyboard as >> the user types. The character table is updated on every key press by calling >> a registerKeyEvent: in GlassApplication. This character table is used to >> resolve KeyCharacterCombination accelerators like Cmd + "+". >> >> On a US English layout when the user types Cmd + "+" on the main keyboard >> they're actually typing Cmd + "=". There's special handling in macOS for >> this combination that can cause two NSEvents to be sent and so there's >> special handling in the Glass code so we don't process both events. When >> this special case is invoked registerKeyEvent: isn't being called to update >> the character table. This bug was introduced when code was consolidated in >> PR #1528. >> >> The fix is a simple one-liner. I've added a test for this in the >> KeyboardTest.java program. It's an isolated test because it requires the >> Robot to send events to hold down a modifier while a character key is >> pressed. I also updated some obsolete comments and tweaked it to test all >> KeyCharacterCombinations since they should now work reliably on all >> platforms. > > Martin Fox has updated the pull request incrementally with one additional > commit since the last revision: > > Reverted manual tests, added system test, changed check for fake > performKeyEquivalent event. Looks good. ------------- Marked as reviewed by mstrauss (Reviewer). PR Review: https://git.openjdk.org/jfx/pull/1837#pullrequestreview-3017264997