Florian Köberle : user32: Unify handling of child and normal windows in getMinMaxInfo.

Alexandre Julliard julliard at winehq.org
Tue Jan 27 09:08:19 CST 2009


Module: wine
Branch: master
Commit: 640d2e029a12f21eacd3860f385d0424f818b572
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=640d2e029a12f21eacd3860f385d0424f818b572

Author: Florian Köberle <florian at fkoeberle.de>
Date:   Sat Jan 24 18:06:42 2009 +0100

user32: Unify handling of child and normal windows in getMinMaxInfo.

The code for the child windows works now for the standalone windows as well.

---

 dlls/user32/winpos.c |   72 ++++++++++++++------------------------------------
 1 files changed, 20 insertions(+), 52 deletions(-)

diff --git a/dlls/user32/winpos.c b/dlls/user32/winpos.c
index b9f7b1a..6419478 100644
--- a/dlls/user32/winpos.c
+++ b/dlls/user32/winpos.c
@@ -669,66 +669,34 @@ void WINPOS_GetMinMaxInfo( HWND hwnd, POINT *maxSize, POINT *maxPos,
     MinMax.ptReserved.x = rc.left;
     MinMax.ptReserved.y = rc.top;
 
-    if (style & WS_CHILD)
-    {
-        if ((style & WS_CAPTION) == WS_CAPTION)
-            adjustedStyle = style & ~WS_BORDER; /* WS_CAPTION = WS_DLGFRAME | WS_BORDER */
-        else
-            adjustedStyle = style;
+    if ((style & WS_CAPTION) == WS_CAPTION)
+        adjustedStyle = style & ~WS_BORDER; /* WS_CAPTION = WS_DLGFRAME | WS_BORDER */
+    else
+        adjustedStyle = style;
 
-        GetClientRect(GetAncestor(hwnd,GA_PARENT), &rc);
-        AdjustWindowRectEx(&rc, adjustedStyle, ((style & WS_POPUP) && GetMenu(hwnd)), exstyle);
+    GetClientRect(GetAncestor(hwnd,GA_PARENT), &rc);
+    AdjustWindowRectEx(&rc, adjustedStyle, ((style & WS_POPUP) && GetMenu(hwnd)), exstyle);
 
-        MinMax.ptMaxSize.x = rc.right - rc.left;
-        MinMax.ptMaxSize.y = rc.bottom - rc.top;
-        if (style & (WS_DLGFRAME | WS_BORDER))
-        {
-            MinMax.ptMinTrackSize.x = GetSystemMetrics(SM_CXMINTRACK);
-            MinMax.ptMinTrackSize.y = GetSystemMetrics(SM_CYMINTRACK);
-        }
-        else
-        {
-            MinMax.ptMinTrackSize.x = -2 * rc.left;
-            MinMax.ptMinTrackSize.y = -2 * rc.top;
-        }
-        MinMax.ptMaxTrackSize.x = GetSystemMetrics(SM_CXMAXTRACK);
-        MinMax.ptMaxTrackSize.y = GetSystemMetrics(SM_CYMAXTRACK);
-        xinc = -rc.left;
-        yinc = -rc.top;
-    }
-    else
+    xinc = -rc.left;
+    yinc = -rc.top;
+
+    MinMax.ptMaxSize.x = rc.right - rc.left;
+    MinMax.ptMaxSize.y = rc.bottom - rc.top;
+    if (style & (WS_DLGFRAME | WS_BORDER))
     {
-        MinMax.ptMaxSize.x = GetSystemMetrics(SM_CXSCREEN);
-        MinMax.ptMaxSize.y = GetSystemMetrics(SM_CYSCREEN);
         MinMax.ptMinTrackSize.x = GetSystemMetrics(SM_CXMINTRACK);
         MinMax.ptMinTrackSize.y = GetSystemMetrics(SM_CYMINTRACK);
-        MinMax.ptMaxTrackSize.x = GetSystemMetrics(SM_CXMAXTRACK);
-        MinMax.ptMaxTrackSize.y = GetSystemMetrics(SM_CYMAXTRACK);
-
-        if (HAS_DLGFRAME( style, exstyle ))
-        {
-            xinc = GetSystemMetrics(SM_CXDLGFRAME);
-            yinc = GetSystemMetrics(SM_CYDLGFRAME);
-        }
-        else
-        {
-            xinc = yinc = 0;
-            if (HAS_THICKFRAME(style))
-            {
-                xinc += GetSystemMetrics(SM_CXFRAME);
-                yinc += GetSystemMetrics(SM_CYFRAME);
-            }
-            if (style & WS_BORDER)
-            {
-                xinc += GetSystemMetrics(SM_CXBORDER);
-                yinc += GetSystemMetrics(SM_CYBORDER);
-            }
-        }
-        MinMax.ptMaxSize.x += 2 * xinc;
-        MinMax.ptMaxSize.y += 2 * yinc;
     }
+    else
+    {
+        MinMax.ptMinTrackSize.x = 2 * xinc;
+        MinMax.ptMinTrackSize.y = 2 * yinc;
+    }
+    MinMax.ptMaxTrackSize.x = GetSystemMetrics(SM_CXMAXTRACK);
+    MinMax.ptMaxTrackSize.y = GetSystemMetrics(SM_CYMAXTRACK);
     MinMax.ptMaxPosition.x = -xinc;
     MinMax.ptMaxPosition.y = -yinc;
+
     if ((win = WIN_GetPtr( hwnd )) && win != WND_DESKTOP && win != WND_OTHER_PROCESS)
     {
         if (!EMPTYPOINT(win->max_pos)) MinMax.ptMaxPosition = win->max_pos;




More information about the wine-cvs mailing list