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

List:       openjdk-openjfx-dev
Subject:    Fwd: Accelerators - odd behavior
From:       Scott Palmer <swpalmer () gmail ! com>
Date:       2014-09-26 17:27:07
Message-ID: CAL3e5iGEUWessUwe4mLgAesqG1UzGfx5Ri-a7m5-xDZW89AWdw () mail ! gmail ! com
[Download RAW message or body]

Forgot to include the list.

(I'm testing with 8u20 btw)

---------- Forwarded message ----------
From: Scott Palmer <swpalmer@gmail.com>
Date: Fri, Sep 26, 2014 at 1:25 PM
Subject: Re: Accelerators - odd behavior
To: Kevin Rushforth <kevin.rushforth@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@oracle.com
> wrote:

> 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@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
>>>
>>>
>>>
>>>
>>
[prev in list] [next in list] [prev in thread] [next in thread] 

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