Accelerators - odd behavior
Kevin Rushforth
kevin.rushforth at oracle.com
Fri Sep 26 17:21:54 UTC 2014
This does seem somewhat strange. Do you get multiple calls to your
runnable if you use a KeyCharacter combination and KeyCode combination
for CTRL-a or other key that generates a key char without needing a shift?
-- Kevin
Scott Palmer wrote:
> What is very interesting about this is that I can't duplicate it with the
> "+" character.
> I've added all of the following to the scene accelerators and it still only
> fires my "plus" action once for each press.
>
> KeyCombination cmdPlus = new KeyCodeCombination(KeyCode.PLUS,
> KeyCombination.CONTROL_DOWN);
> KeyCombination cmdAdd = new KeyCodeCombination(KeyCode.ADD,
> KeyCombination.CONTROL_DOWN);
> KeyCombination cmdPlusAsShiftEquals = new
> KeyCodeCombination(KeyCode.EQUALS, KeyCombination.CONTROL_DOWN,
> KeyCodeCombination.SHIFT_DOWN);
> KeyCombination cmdPlusFromCharacter = new KeyCharacterCombination("+",
> KeyCombination.CONTROL_DOWN);
>
> This is weird.
>
> On Fri, Sep 26, 2014 at 1:01 PM, Scott Palmer <swpalmer at gmail.com> wrote:
>
>
>> KeyCombination cmdMinus = new Key*Code*Combination(KeyCode.MINUS,
>> KeyCombination.CONTROL_DOWN);
>> KeyCombination cmdMinusFromCharacter = new Key*Character*Combination("-",
>> KeyCombination.CONTROL_DOWN);
>>
>> Using the above like this:
>> scene.getAccelerators().put(cmdMinus, runnable);
>> scene.getAccelerators().put(cmdMinusFromCharacter, runnable);
>>
>> Will result in the runnable being fired twice from the same keypress.
>>
>> I propose changing the accelerator processing logic so that only one
>> runnable gets called as the intention appears to be that a KeyCombination
>> can only have one runnable associated with it, but the logic in Map doesn't
>> see the above two KeyCombinations as the same key in the Map.
>>
>> Note: With the second combination above I really wanted something that
>> worked for both MINUS and SUBTRACT simultaneously - since they both type
>> the same Character and only one accelerator can be set on a MenuItem.
>>
>> Scott
>>
>>
>>
More information about the openjfx-dev
mailing list