src/windows/native/sun/windows/awt_Window.cpp

Print this page

        

@@ -134,11 +134,10 @@
     jint width, height;
 };
 // Struct for _RequestWindowFocus() method
 struct RequestWindowFocusStruct {
     jobject component;
-    jboolean isMouseEventCause;
 };
 // struct for _RepositionSecurityWarning() method
 struct RepositionSecurityWarningStruct {
     jobject window;
 };

@@ -1555,28 +1554,12 @@
     SendEvent(event);
 
     env->DeleteLocalRef(event);
 }
 
-BOOL AwtWindow::AwtSetActiveWindow(BOOL isMouseEventCause, UINT hittest)
+BOOL AwtWindow::AwtSetActiveWindow(UINT hittest)
 {
-    // Fix for 6458497.
-    // Retreat if current foreground window is out of both our and embedder process.
-    // The exception is when activation is requested due to a mouse event.
-    if (!isMouseEventCause) {
-        HWND fgWindow = ::GetForegroundWindow();
-        if (NULL != fgWindow) {
-            DWORD fgProcessID;
-            ::GetWindowThreadProcessId(fgWindow, &fgProcessID);
-            if (fgProcessID != ::GetCurrentProcessId()
-                && !AwtToolkit::GetInstance().IsEmbedderProcessId(fgProcessID))
-            {
-                return FALSE;
-            }
-        }
-    }
-
     HWND proxyContainerHWnd = GetProxyToplevelContainer();
     HWND proxyHWnd = GetProxyFocusOwner();
 
     if (proxyContainerHWnd == NULL || proxyHWnd == NULL) {
         return FALSE;

@@ -2111,11 +2094,10 @@
 {
     JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
 
     RequestWindowFocusStruct *rfs = (RequestWindowFocusStruct *)param;
     jobject self = rfs->component;
-    jboolean isMouseEventCause = rfs->isMouseEventCause;
 
     jboolean result = JNI_FALSE;
     AwtWindow *window = NULL;
 
     PDATA pData;

@@ -2126,11 +2108,11 @@
         goto ret;
     }
 
     window = (AwtWindow *)pData;
     if (::IsWindow(window->GetHWnd())) {
-        result = (jboolean)window->SendMessage(WM_AWT_WINDOW_SETACTIVE, (WPARAM)isMouseEventCause, 0);
+        result = (jboolean)window->SendMessage(WM_AWT_WINDOW_SETACTIVE, 0);
     }
 ret:
     env->DeleteGlobalRef(self);
 
     delete rfs;

@@ -3623,19 +3605,18 @@
  * Class:     sun_awt_windows_WComponentPeer
  * Method:    requestFocus
  * Signature: (Z)Z
  */
 JNIEXPORT jboolean JNICALL Java_sun_awt_windows_WWindowPeer_requestWindowFocus
-    (JNIEnv *env, jobject self, jboolean isMouseEventCause)
+    (JNIEnv *env, jobject self)
 {
     TRY;
 
     jobject selfGlobalRef = env->NewGlobalRef(self);
 
     RequestWindowFocusStruct *rfs = new RequestWindowFocusStruct;
     rfs->component = selfGlobalRef;
-    rfs->isMouseEventCause = isMouseEventCause;
 
     return (jboolean)AwtToolkit::GetInstance().SyncCall(
         (void*(*)(void*))AwtWindow::_RequestWindowFocus, rfs);
     // global refs and rfs are deleted in _RequestWindowFocus