<Swing Dev> [12] RFR JDK-8211987: Menu bar gets input focus even if Alt-released event is consumed

Prasanta Sadhukhan prasanta.sadhukhan at oracle.com
Thu Oct 11 06:31:16 UTC 2018


Hi All,

Please review a fix for an issue where it is seen that 
typing(pressing+releaseing) ALT key in a JTextArea transfer focus to and 
activates JMenu (rather than focus staying in textarea)
if both JTextArea and JMenu are present in a JFrame,
even if there is a KeyListener on the text component that consumes the 
KeyEvent generated when releasing the Alt key.

This is a regression of JDK-8173145: 
<https://bugs.openjdk.java.net/browse/JDK-8173145>Menu is activated 
after using mnemonic Alt/Key combination
where a check is amended in AltProcessor#postProcessKeyEvent
if(ev.isConsumed()) {
                 // do not manage consumed event
                 return false;
             }

to :
if(ev.isConsumed() && ev.getKeyCode() != KeyEvent.VK_ALT) {
                 // mnemonic combination, it's consumed, but we need
                 // set altKeyPressed to false, otherwise after selection
                 // component by mnemonic combination a menu will be open
                 altKeyPressed = false;
                 return false;
             }
to ensure key-binding action is executed when not-alt key pressed.
But the above fix also prevents the postProcessKeyEvent to return even 
when ALT event is consumed.
Proposed fix is to ensure postProcessKeyEvent returns if event is 
consumed and also ensures the previous check of resetting altKeyPressed 
occurs for non-alt combination.

With this fix, the regression testcase of JDK-8173145 
<https://bugs.openjdk.java.net/browse/JDK-8173145>also works ok.

Bug: https://bugs.openjdk.java.net/browse/JDK-8211987
webrev: http://cr.openjdk.java.net/~psadhukhan/8211987/webrev.0/

Regards
Prasanta
<https://bugs.openjdk.java.net/browse/JDK-8173145>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/swing-dev/attachments/20181011/7944aaa3/attachment-0001.html>


More information about the swing-dev mailing list