On Mon, 30 Jun 2025 16:58:00 GMT, Martin Fox <[email protected]> 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.
tests/manual/events/KeyboardTest.java line 815:
> 813: // OS special-cases this combination and so does JavaFX. In any case
> 814: // Shortcut + "+" is a very common shortcut and deserves a test.
> 815: private void testShiftedShortcut(Layout layout, Node focusNode,
> Logging log) {
Question: is it possible to convert this manual test into an automated headful
one?
-------------
PR Review Comment: https://git.openjdk.org/jfx/pull/1837#discussion_r2175543117