Hi Prasanta, I looked at documentation of KeyStroke.getKeyStroke and InputEvent.ALT_MASK should be used instead of ActionEvent.ALT_MASK. The corresponding InputEvent.ALT_GRAPH_MASK is already present. I used it by mistake last time. I have made changes for JMenuItem I have changed BasicJMenuItemUI for JMenuItem and updated the test case too. Other changes are same as webrev.02. Please have a look. Webrev: http://cr.openjdk.java.net/~pbansal/8194873/webrev.03/
Regards, Pankaj Bansal -----Original Message----- From: Prasanta Sadhukhan Sent: Friday, April 20, 2018 5:04 PM To: Pankaj Bansal Cc: swing-dev@openjdk.java.net Subject: Re: <Swing Dev> [11] JDK-8194873: right ALT key hotkeys no longer work in Swing components 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@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