[PATCH 3/6] user32: Fix thick child minTrack and size.

Florian Köberle florian at fkoeberle.de
Sat Jan 24 11:06:39 CST 2009


---
 dlls/user32/tests/win.c |   36 ++++++++----------------------------
 dlls/user32/winpos.c    |   12 ++++++++++--
 2 files changed, 18 insertions(+), 30 deletions(-)

diff --git a/dlls/user32/tests/win.c b/dlls/user32/tests/win.c
index 449a23d..a7acc62 100644
--- a/dlls/user32/tests/win.c
+++ b/dlls/user32/tests/win.c
@@ -5278,20 +5278,11 @@ static LRESULT WINAPI test_thick_child_size_winproc(HWND hwnd, UINT msg, WPARAM
             }
             actualMinTrackX =  minmax->ptMinTrackSize.x;
             actualMinTrackY =  minmax->ptMinTrackSize.y;
-            if (!(test_thick_child_style & (WS_DLGFRAME | WS_BORDER))) {
-                todo_wine
-                    ok(actualMinTrackX == expectedMinTrackX && actualMinTrackY == expectedMinTrackY,
-                        "expected minTrack %dx%d, actual minTrack %dx%d for %s\n",
-                        expectedMinTrackX, expectedMinTrackY, actualMinTrackX, actualMinTrackY,
-                        test_thick_child_name);
-            }
-            else
-            {
-                ok(actualMinTrackX == expectedMinTrackX && actualMinTrackY == expectedMinTrackY,
-                    "expected minTrack %dx%d, actual minTrack %dx%d for %s\n",
-                    expectedMinTrackX, expectedMinTrackY, actualMinTrackX, actualMinTrackY,
-                    test_thick_child_name);
-            }
+
+            ok(actualMinTrackX == expectedMinTrackX && actualMinTrackY == expectedMinTrackY,
+                "expected minTrack %dx%d, actual minTrack %dx%d for %s\n",
+                expectedMinTrackX, expectedMinTrackY, actualMinTrackX, actualMinTrackY,
+                test_thick_child_name);
 
             actualMaxTrackX = minmax->ptMaxTrackSize.x;
             actualMaxTrackY = minmax->ptMaxTrackSize.y;
@@ -5449,20 +5440,9 @@ static void test_thick_child_size(HWND parentWindow)
             expectedHeight = -2 * adjustedParentRect.top;
         }
 
-        if (!(test_thick_child_style & (WS_DLGFRAME | WS_BORDER)))
-        {
-            todo_wine
-                ok((childWidth == expectedWidth) && (childHeight == expectedHeight),
-                    "size of window (%s) is wrong: expected size %dx%d != actual size %dx%d\n",
-                    test_thick_child_name, expectedWidth, expectedHeight, childWidth, childHeight);
-        }
-        else
-        {
-            ok((childWidth == expectedWidth) && (childHeight == expectedHeight),
-                "size of window (%s) is wrong: expected size %dx%d != actual size %dx%d\n",
-                test_thick_child_name, expectedWidth, expectedHeight, childWidth, childHeight);
-        }
-
+        ok((childWidth == expectedWidth) && (childHeight == expectedHeight),
+            "size of window (%s) is wrong: expected size %dx%d != actual size %dx%d\n",
+            test_thick_child_name, expectedWidth, expectedHeight, childWidth, childHeight);
 
         SetLastError(0xdeadbeef);
         success = DestroyWindow(childWindow);
diff --git a/dlls/user32/winpos.c b/dlls/user32/winpos.c
index c1da249..f758514 100644
--- a/dlls/user32/winpos.c
+++ b/dlls/user32/winpos.c
@@ -678,8 +678,16 @@ void WINPOS_GetMinMaxInfo( HWND hwnd, POINT *maxSize, POINT *maxPos,
 
         MinMax.ptMaxSize.x = rc.right - rc.left;
         MinMax.ptMaxSize.y = rc.bottom - rc.top;
-        MinMax.ptMinTrackSize.x = GetSystemMetrics(SM_CXMINTRACK);
-        MinMax.ptMinTrackSize.y = GetSystemMetrics(SM_CYMINTRACK);
+        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;
-- 
1.5.4.3




More information about the wine-patches mailing list