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.

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@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.golov...@gmail.com]
> Sent: Tuesday, April 10, 2018 2:18 PM
> To: Pankaj Bansal
> Cc: Prasanta Sadhukhan; Sergey Bylokhov; swing-dev@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

Reply via email to