6682536: java\awt\FullScreen\NonfocusableFrameFullScreenTest\NonfocusableFrameFullScreenTest.java fails
Summary: always-on-top property should be restored on exiting full-screen.
Reviewed-by: tdv
--- a/jdk/src/windows/native/sun/windows/awt_Win32GraphicsDevice.cpp Thu Jun 19 16:09:22 2008 +0400
+++ b/jdk/src/windows/native/sun/windows/awt_Win32GraphicsDevice.cpp Mon Jun 23 14:42:53 2008 +0400
@@ -1107,6 +1107,10 @@
}
}
} else {
+ jobject target = env->GetObjectField(windowPeer, AwtObject::targetID);
+ jboolean alwaysOnTop = JNU_GetFieldByName(env, NULL, target, "alwaysOnTop", "Z").z;
+ env->DeleteLocalRef(target);
+
if (!::SetWindowPos(hWnd, HWND_NOTOPMOST, 0, 0, 0, 0,
SWP_NOMOVE|SWP_NOOWNERZORDER|SWP_NOSIZE))
{
@@ -1114,6 +1118,9 @@
"Error %d unsetting topmost attribute to fs window",
::GetLastError());
}
+
+ // We should restore alwaysOnTop state as it's anyway dropped here
+ Java_sun_awt_windows_WWindowPeer_setAlwaysOnTopNative(env, windowPeer, alwaysOnTop);
}
CATCH_BAD_ALLOC;