<Swing Dev> [11] JDK-8194873: right ALT key hotkeys no longer work in Swing components

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Wed Jun 20 23:23:48 UTC 2018


Hi, Pankaj.
Is this bug applicable only to windows? can we make the test non-windows 
specific?

On 20/06/2018 07:52, Pankaj Bansal wrote:
> 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 at 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 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
> 


-- 
Best regards, Sergey.



More information about the swing-dev mailing list