jdk/src/macosx/native/sun/awt/AWTWindow.m
changeset 20135 f6edca5afe49
parent 19022 4d36c6935abb
child 20139 53e1e07a811e
--- a/jdk/src/macosx/native/sun/awt/AWTWindow.m	Fri Sep 13 18:02:18 2013 +0400
+++ b/jdk/src/macosx/native/sun/awt/AWTWindow.m	Mon Sep 16 17:45:07 2013 +0400
@@ -366,6 +366,22 @@
 
 - (BOOL) canBecomeMainWindow {
 AWT_ASSERT_APPKIT_THREAD;
+    if(!self.isEnabled){
+        // Native system can bring up the NSWindow to
+        // the top even if the window is not main.
+        // We should bring up the modal dialog manually
+        [AWTToolkit eventCountPlusPlus];
+
+        JNIEnv *env = [ThreadUtilities getJNIEnv];
+        jobject platformWindow = [self.javaPlatformWindow jObjectWithEnv:env];
+        if (platformWindow != NULL) {
+            static JNF_MEMBER_CACHE(jm_checkBlockingAndOrder, jc_CPlatformWindow,
+                                    "checkBlockingAndOrder", "()Z");
+            JNFCallVoidMethod(env, platformWindow, jm_checkBlockingAndOrder);
+            (*env)->DeleteLocalRef(env, platformWindow);
+        }
+    }
+
     return self.isEnabled && IS(self.styleBits, SHOULD_BECOME_MAIN);
 }