--- old/src/share/classes/com/sun/java/swing/plaf/windows/WindowsRootPaneUI.java 2012-07-05 15:38:14.000000000 +0400 +++ new/src/share/classes/com/sun/java/swing/plaf/windows/WindowsRootPaneUI.java 2012-07-05 15:38:14.000000000 +0400 @@ -30,6 +30,8 @@ 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; @@ -125,7 +127,15 @@ } JMenu menu = mbar != null ? mbar.getMenu(0) : null; - if (menu != null) { + // Skip menu activation if the KeyEvent originated before + // the latest window deactivation. + boolean skip = false; + Toolkit tk = Toolkit.getDefaultToolkit(); + if (tk instanceof SunToolkit) { + skip = ev.getWhen() <= ((SunToolkit)tk).getDeactivationTime(winAncestor); + } + + if (menu != null && !skip) { MenuElement[] path = new MenuElement[2]; path[0] = mbar; path[1] = menu;