[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-openjfx-dev
Subject:    Re: RFR: 8087700: [KeyCombination, Mac] KeyCharacterCombinations behave erratically
From:       Martin Fox <duke () openjdk ! org>
Date:       2023-08-22 16:43:18
Message-ID: YeAKRln_WyMtiyK58JOy5zCAMdWiyP9d8WZNGW2-T_8=.6c0321d6-5065-4554-a127-ac6d2308b30e () github ! com
[Download RAW message or body]

On Mon, 14 Aug 2023 16:28:20 GMT, Martin Fox <duke@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.

Updated the JBS and PR title and added a new test case. The underlying problem is \
that KeyCharacterCombinations don't work until the user types the character directly \
which leads to confusing behavior e.g. Cmd+'+' doesn't work on the main keyboard \
until the user types '+' but then stops working if they type '+' on the numeric \
keypad.

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

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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic