Fwd: Accelerators - odd behavior
swpalmer at gmail.com
Fri Sep 26 17:27:07 UTC 2014
Forgot to include the list.
(I'm testing with 8u20 btw)
---------- Forwarded message ----------
From: Scott Palmer <swpalmer at gmail.com>
Date: Fri, Sep 26, 2014 at 1:25 PM
Subject: Re: Accelerators - odd behavior
To: Kevin Rushforth <kevin.rushforth at oracle.com>
Yes, for CTRL+a I do see it fire twice.
On Fri, Sep 26, 2014 at 1:21 PM, Kevin Rushforth <kevin.rushforth at oracle.com
> 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
>> fires my "plus" action once for each press.
>> KeyCombination cmdPlus = new KeyCodeCombination(KeyCode.PLUS,
>> KeyCombination cmdAdd = new KeyCodeCombination(KeyCode.ADD,
>> KeyCombination cmdPlusAsShiftEquals = new
>> KeyCodeCombination(KeyCode.EQUALS, KeyCombination.CONTROL_DOWN,
>> KeyCombination cmdPlusFromCharacter = new KeyCharacterCombination("+",
>> 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 cmdMinusFromCharacter = new Key*Character*Combination("-",
>>> 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
>>> 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.
More information about the openjfx-dev