--- old/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java 2013-03-27 17:07:17.757893916 +0400 +++ new/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java 2013-03-27 17:07:14.323114587 +0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -114,6 +114,7 @@ static final int RESIZABLE = 1 << 9; // both a style bit and prop bit static final int NONACTIVATING = 1 << 24; + static final int MODAL = 1 << 25; static final int _STYLE_PROP_BITMASK = DECORATED | TEXTURED | UNIFIED | UTILITY | HUD | SHEET | CLOSEABLE | MINIMIZABLE | RESIZABLE; @@ -373,6 +374,10 @@ } } + if (isDialog && ((Dialog) target).isModal()) { + styleBits = SET(styleBits, MODAL, true); + } + peer.setTextured(IS(TEXTURED, styleBits)); return styleBits; --- old/src/macosx/native/sun/awt/AWTWindow.m 2013-03-27 17:07:27.781178407 +0400 +++ new/src/macosx/native/sun/awt/AWTWindow.m 2013-03-27 17:07:24.415712160 +0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -536,8 +536,16 @@ - (void) windowDidBecomeKey: (NSNotification *) notification { AWT_ASSERT_APPKIT_THREAD; [AWTToolkit eventCountPlusPlus]; - [CMenuBar activate:self.javaMenuBar modallyDisabled:NO]; + AWTWindow *opposite = [AWTWindow lastKeyWindow]; + if (self.javaMenuBar != NULL) { + [CMenuBar activate:self.javaMenuBar modallyDisabled:NO]; + } else { + if (IS(self.styleBits, MODAL) && opposite != NULL) { + [CMenuBar activate:opposite->javaMenuBar modallyDisabled:YES]; + } + } + [AWTWindow setLastKeyWindow:nil]; [self _deliverWindowFocusEvent:YES oppositeWindow: opposite];