From 181fa7c54d0ee07b28cc6627f04282d6cd2a5883 Mon Sep 17 00:00:00 2001
From: NF Stevens <norman@arcady.u-net.com>
Date: Mon, 14 Dec 1998 14:37:06 +0000
Subject: [PATCH] Fix the Z-order of maximized/minimized child windows.

---
 windows/win.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/windows/win.c b/windows/win.c
index 649f8522445..85e72f954e2 100644
--- a/windows/win.c
+++ b/windows/win.c
@@ -569,7 +569,8 @@ static HWND32 WIN_CreateWindowEx( CREATESTRUCT32A *cs, ATOM classAtom,
 
     /* 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 ))
     {
@@ -712,9 +713,11 @@ static HWND32 WIN_CreateWindowEx( CREATESTRUCT32A *cs, ATOM classAtom,
 		UINT16 swFlag = (wndPtr->dwStyle & WS_MINIMIZE) ? SW_MINIMIZE : SW_MAXIMIZE;
                 wndPtr->dwStyle &= ~(WS_MAXIMIZE | WS_MINIMIZE);
 		WINPOS_MinMaximize( wndPtr, swFlag, &newPos );
-		swFlag = ((wndPtr->dwStyle & WS_CHILD) || GetActiveWindow32()) ? SWP_NOACTIVATE : 0;
-                SetWindowPos32( hwnd, 0, newPos.left, newPos.top, 
-					 newPos.right, newPos.bottom, SWP_FRAMECHANGED | swFlag );
+                swFlag = ((wndPtr->dwStyle & WS_CHILD) || GetActiveWindow32())
+                    ? SWP_NOACTIVATE | SWP_NOZORDER | SWP_FRAMECHANGED
+                    : 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) )
-- 
GitLab