<Swing Dev> [11] JDK-8194873: right ALT key hotkeys no longer work in Swing components
Prasanta Sadhukhan
prasanta.sadhukhan at oracle.com
Fri Apr 20 11:34:03 UTC 2018
Hi Pankaj,
On 4/20/2018 3:48 PM, Pankaj Bansal wrote:
> Hi Prasanta,
>
> In case of JMenuItem, there are two ways to add key shortcuts
>
> 1.
> JMenuItem newMenuItem = new JMenuItem("New");
> newMenuItem.setMnemonic(KeyEvent.VK_N);
> In this case, the event is triggered if the N key is pressed. The modifiers are not used in this and pressing only N will work. So ALT or ALT_GRAPH is not required. These shortcut only work if the menu containing the given menu item is expanded.
>
> 2.
> JMenuItem newMenuItem = new JMenuItem("New");
> newMenuItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_N, ActionEvent.ALT_MASK));
> In this case we are setting the accelerator key. In this case the key N will work with the modifier passed here. So the user is explicitly telling whether to use ALT, ALT_GRAPH or ALT+ALT+GRAPH. So I think we don’t need to change anything here. The menu containing the menu item does not have to be expanded in this case.
But, as far I see in spec, ActionEvent does not have anyway to specify
Right ALT mask or ALT_GRAPH_MASK so how the user can tell to use ALT_GRAPH.
Regards
Prasanta
> Please let me know what do you think about this.
>
> Regards,
> Pankaj Bansal
>
> -----Original Message-----
> From: Prasanta Sadhukhan
> Sent: Thursday, April 19, 2018 12:41 PM
> To: Pankaj Bansal; Andrej Golovnin
> Cc: Sergey Bylokhov; swing-dev at openjdk.java.net
> Subject: Re: <Swing Dev> [11] JDK-8194873: right ALT key hotkeys no longer work in Swing components
>
> Hi Pankaj,
>
> looks good. but it still does not test JMenuItem as I can see. Did you check if you have some menu items inside JMenu and set mnemonic, does Right Alt key works?
>
> Regards
> Prasanta
> On 4/10/2018 3:15 PM, Pankaj Bansal wrote:
>> Hello Andrej,
>>
>> Thanks for the quick review. Yes, it does not sense to apply || on same value. It was a typo. Thanks for pointing it out.
>> Webrev:
>> http://cr.openjdk.java.net/~pbansal/8194873/webrev.02/
>>
>>
>> Regards,
>> Pankaj Bansal
>>
>> -----Original Message-----
>> From: Andrej Golovnin [mailto:andrej.golovnin at gmail.com]
>> Sent: Tuesday, April 10, 2018 2:18 PM
>> To: Pankaj Bansal
>> Cc: Prasanta Sadhukhan; Sergey Bylokhov; swing-dev at openjdk.java.net
>> Subject: Re: <Swing Dev> [11] JDK-8194873: right ALT key hotkeys no
>> longer work in Swing components
>>
>> Hi Pankaj,
>>
>>> Webrev:
>>>
>>> http://cr.openjdk.java.net/~pbansal/8194873/webrev.01/
>> src/java.desktop/windows/native/libawt/windows/awt_Component.cpp
>>
>> 3540 BOOL altIsDown = ((modifiers &
>> java_awt_event_InputEvent_ALT_DOWN_MASK) ||
>> 3541 (modifiers &
>> java_awt_event_InputEvent_ALT_DOWN_MASK));
>>
>> Applying '||' on the same value does not make sense. I think the line
>> 3541 should use 'java_awt_event_InputEvent_ALT_GRAPH_DOWN_MASK':
>>
>> 3541 (modifiers &
>> java_awt_event_InputEvent_ALT_GRAPH_DOWN_MASK));
>>
>> Best regards,
>> Andrej Golovnin
More information about the swing-dev
mailing list