8010721: [macosx] In JDK7 the menu bar disappears when a Dialog is shown
Reviewed-by: anthony, serb
--- a/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java Fri May 24 19:41:09 2013 +0400
+++ b/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java Mon May 27 12:47:18 2013 +0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -115,6 +115,8 @@
static final int RESIZABLE = 1 << 9; // both a style bit and prop bit
static final int NONACTIVATING = 1 << 24;
+ static final int IS_DIALOG = 1 << 25;
+ static final int IS_MODAL = 1 << 26;
static final int _STYLE_PROP_BITMASK = DECORATED | TEXTURED | UNIFIED | UTILITY | HUD | SHEET | CLOSEABLE | MINIMIZABLE | RESIZABLE;
@@ -374,6 +376,13 @@
}
}
+ if (isDialog) {
+ styleBits = SET(styleBits, IS_DIALOG, true);
+ if (((Dialog) target).isModal()) {
+ styleBits = SET(styleBits, IS_MODAL, true);
+ }
+ }
+
peer.setTextured(IS(TEXTURED, styleBits));
return styleBits;
--- a/jdk/src/macosx/native/sun/awt/AWTWindow.m Fri May 24 19:41:09 2013 +0400
+++ b/jdk/src/macosx/native/sun/awt/AWTWindow.m Mon May 27 12:47:18 2013 +0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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,12 @@
- (void) windowDidBecomeKey: (NSNotification *) notification {
AWT_ASSERT_APPKIT_THREAD;
[AWTToolkit eventCountPlusPlus];
- [CMenuBar activate:self.javaMenuBar modallyDisabled:NO];
AWTWindow *opposite = [AWTWindow lastKeyWindow];
+ if (!IS(self.styleBits, IS_DIALOG)) {
+ [CMenuBar activate:self.javaMenuBar modallyDisabled:NO];
+ } else if (IS(self.styleBits, IS_MODAL)) {
+ [CMenuBar activate:opposite->javaMenuBar modallyDisabled:YES];
+ }
[AWTWindow setLastKeyWindow:nil];
[self _deliverWindowFocusEvent:YES oppositeWindow: opposite];