From 514487074b44be4e1f4cfdd9660817659dc954bc Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Mon, 4 May 2020 12:08:47 +0200 Subject: [PATCH] Menus: after Alt+Tab to other window and back, activating menu with Alt key did not always work (issue #43) --- .../main/java/com/formdev/flatlaf/MnemonicHandler.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/MnemonicHandler.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/MnemonicHandler.java index d3f6e936..50ecbb27 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/MnemonicHandler.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/MnemonicHandler.java @@ -92,8 +92,8 @@ class MnemonicHandler MenuSelectionManager.defaultManager().getSelectedPath().length > 0; } - private int altPressedEventCount; - private boolean selectMenuOnAltReleased; + private static int altPressedEventCount; + private static boolean selectMenuOnAltReleased; /** * Special Alt key behavior on Windows. @@ -151,6 +151,7 @@ class MnemonicHandler } } } + selectMenuOnAltReleased = false; // hide mnemonics if( !mnemonicsShown ) @@ -196,6 +197,9 @@ class MnemonicHandler windowListener = new WindowAdapter() { @Override public void windowDeactivated( WindowEvent e ) { + altPressedEventCount = 0; + selectMenuOnAltReleased = false; + // use invokeLater() to avoid that the listener is removed // while the listener queue is iterated to fire this event EventQueue.invokeLater( () -> {