6825342: Security warning may change Z-order of top-level

Added the SWP_NOOWNERZORDER flag when calling ::SetWindowPos()

Reviewed-by: art, dcherepanov
This commit is contained in:
Anthony Petrov 2009-04-14 14:17:31 +04:00
parent 8ac601577f
commit 9c7b1e8b5b

View File

@ -369,7 +369,8 @@ void AwtWindow::RepositionSecurityWarning(JNIEnv *env)
::SetWindowPos(warningWindow, HWND_NOTOPMOST,
rect.left, rect.top,
rect.right - rect.left, rect.bottom - rect.top,
SWP_ASYNCWINDOWPOS | SWP_NOACTIVATE | SWP_NOZORDER
SWP_ASYNCWINDOWPOS | SWP_NOACTIVATE | SWP_NOZORDER |
SWP_NOOWNERZORDER
);
}
@ -854,7 +855,7 @@ void AwtWindow::StartSecurityAnimation(AnimationKind kind)
if (securityAnimationKind == akShow) {
::SetWindowPos(warningWindow, HWND_NOTOPMOST, 0, 0, 0, 0,
SWP_NOACTIVATE | SWP_NOSIZE | SWP_NOMOVE |
SWP_SHOWWINDOW);
SWP_SHOWWINDOW | SWP_NOOWNERZORDER);
::SetLayeredWindowAttributes(warningWindow, RGB(0, 0, 0),
0xFF, LWA_ALPHA);
@ -880,7 +881,7 @@ void AwtWindow::StopSecurityAnimation()
case akPreHide:
::SetWindowPos(warningWindow, HWND_NOTOPMOST, 0, 0, 0, 0,
SWP_NOACTIVATE | SWP_NOSIZE | SWP_NOMOVE |
SWP_HIDEWINDOW);
SWP_HIDEWINDOW | SWP_NOOWNERZORDER);
break;
case akShow:
RepaintWarningWindow();