src/share/classes/com/sun/java/swing/plaf/windows/WindowsRootPaneUI.java
Print this page
*** 28,37 ****
--- 28,39 ----
import java.awt.Component;
import java.awt.Container;
import java.awt.Event;
import java.awt.KeyEventPostProcessor;
import java.awt.Window;
+ import java.awt.Toolkit;
+ import sun.awt.SunToolkit;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import javax.swing.AbstractAction;
*** 123,133 ****
if(mbar == null && winAncestor instanceof JFrame) {
mbar = ((JFrame)winAncestor).getJMenuBar();
}
JMenu menu = mbar != null ? mbar.getMenu(0) : null;
! if (menu != null) {
MenuElement[] path = new MenuElement[2];
path[0] = mbar;
path[1] = menu;
msm.setSelectedPath(path);
} else if(!WindowsLookAndFeel.isMnemonicHidden()) {
--- 125,147 ----
if(mbar == null && winAncestor instanceof JFrame) {
mbar = ((JFrame)winAncestor).getJMenuBar();
}
JMenu menu = mbar != null ? mbar.getMenu(0) : null;
! // It might happen that the altRelease event is processed
! // with a reasonable delay since it has been generated.
! // Here we check the last deactivation time of the containing
! // window. If this time appears to be greater than the altRelease
! // event time the event is skipped to avoid unexpected menu
! // activation. See 7121442.
! boolean skip = false;
! Toolkit tk = Toolkit.getDefaultToolkit();
! if (tk instanceof SunToolkit) {
! skip = ev.getWhen() <= ((SunToolkit)tk).getWindowDeactivationTime(winAncestor);
! }
!
! if (menu != null && !skip) {
MenuElement[] path = new MenuElement[2];
path[0] = mbar;
path[1] = menu;
msm.setSelectedPath(path);
} else if(!WindowsLookAndFeel.isMnemonicHidden()) {