Menus: after Alt+Tab to other window and back, activating menu with Alt key did not always work (issue #43)

This commit is contained in:
Karl Tauber
2020-05-04 12:08:47 +02:00
parent f014e2473f
commit 514487074b

View File

@@ -92,8 +92,8 @@ class MnemonicHandler
MenuSelectionManager.defaultManager().getSelectedPath().length > 0; MenuSelectionManager.defaultManager().getSelectedPath().length > 0;
} }
private int altPressedEventCount; private static int altPressedEventCount;
private boolean selectMenuOnAltReleased; private static boolean selectMenuOnAltReleased;
/** /**
* Special Alt key behavior on Windows. * Special Alt key behavior on Windows.
@@ -151,6 +151,7 @@ class MnemonicHandler
} }
} }
} }
selectMenuOnAltReleased = false;
// hide mnemonics // hide mnemonics
if( !mnemonicsShown ) if( !mnemonicsShown )
@@ -196,6 +197,9 @@ class MnemonicHandler
windowListener = new WindowAdapter() { windowListener = new WindowAdapter() {
@Override @Override
public void windowDeactivated( WindowEvent e ) { public void windowDeactivated( WindowEvent e ) {
altPressedEventCount = 0;
selectMenuOnAltReleased = false;
// use invokeLater() to avoid that the listener is removed // use invokeLater() to avoid that the listener is removed
// while the listener queue is iterated to fire this event // while the listener queue is iterated to fire this event
EventQueue.invokeLater( () -> { EventQueue.invokeLater( () -> {