Hi Kevin,
On Fri, Sep 26, 2014 at 7:16 PM, Kevin Rushforth <kevin.rushfo...@oracle.com> wrote: > It seems to me that this is working as designed. You have created two > different KeyCombinations and asked that both fire your runnable. Further, > both of the KeyCombinations match your key input since both a KeyPressed and > a KeyTyped event are sent when pressing a key that has an associated > character. I'm not sure how we could change it in a way that wouldn't be > surprising or difficult to specify or document. The Javadoc for KeyCharacterCombination#match also says "This means that the method can return true only for KEY_PRESSED andKEY_RELEASED events, but not for KEY_TYPED events, which don't have valid key codes." Thus it is probably not related to KEY_TYPED events. Tomas > > -- Kevin > > > > Scott Palmer 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 >>