<Swing Dev> [12] RFR JDK-8211987: Menu bar gets input focus even if Alt-released event is consumed
Sergey Bylokhov
Sergey.Bylokhov at oracle.com
Tue Oct 16 21:04:14 UTC 2018
Looks fine.
On 10/10/2018 23:31, Prasanta Sadhukhan wrote:
> 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>
--
Best regards, Sergey.
More information about the swing-dev
mailing list