Fix the Z-order of maximized/minimized child windows.

This commit is contained in:
NF Stevens 1998-12-14 14:37:06 +00:00 committed by Alexandre Julliard
parent 7a31ef2dc7
commit 181fa7c54d
1 changed files with 7 additions and 4 deletions

View File

@ -569,7 +569,8 @@ static HWND32 WIN_CreateWindowEx( CREATESTRUCT32A *cs, ATOM classAtom,
/* Call the WH_CBT hook */ /* Call the WH_CBT hook */
hwndLinkAfter = (cs->style & WS_CHILD) ? HWND_BOTTOM : HWND_TOP; hwndLinkAfter = ((cs->style & (WS_CHILD|WS_MAXIMIZE)) == WS_CHILD)
? HWND_BOTTOM : HWND_TOP;
if (HOOK_IsHooked( WH_CBT )) if (HOOK_IsHooked( WH_CBT ))
{ {
@ -712,9 +713,11 @@ static HWND32 WIN_CreateWindowEx( CREATESTRUCT32A *cs, ATOM classAtom,
UINT16 swFlag = (wndPtr->dwStyle & WS_MINIMIZE) ? SW_MINIMIZE : SW_MAXIMIZE; UINT16 swFlag = (wndPtr->dwStyle & WS_MINIMIZE) ? SW_MINIMIZE : SW_MAXIMIZE;
wndPtr->dwStyle &= ~(WS_MAXIMIZE | WS_MINIMIZE); wndPtr->dwStyle &= ~(WS_MAXIMIZE | WS_MINIMIZE);
WINPOS_MinMaximize( wndPtr, swFlag, &newPos ); WINPOS_MinMaximize( wndPtr, swFlag, &newPos );
swFlag = ((wndPtr->dwStyle & WS_CHILD) || GetActiveWindow32()) ? SWP_NOACTIVATE : 0; swFlag = ((wndPtr->dwStyle & WS_CHILD) || GetActiveWindow32())
SetWindowPos32( hwnd, 0, newPos.left, newPos.top, ? SWP_NOACTIVATE | SWP_NOZORDER | SWP_FRAMECHANGED
newPos.right, newPos.bottom, SWP_FRAMECHANGED | swFlag ); : SWP_NOZORDER | SWP_FRAMECHANGED;
SetWindowPos32( hwnd, 0, newPos.left, newPos.top,
newPos.right, newPos.bottom, swFlag );
} }
if( wndPtr->dwStyle & WS_CHILD && !(wndPtr->dwExStyle & WS_EX_NOPARENTNOTIFY) ) if( wndPtr->dwStyle & WS_CHILD && !(wndPtr->dwExStyle & WS_EX_NOPARENTNOTIFY) )