Use unadjusted rect (the one calculated before sending WM_SIZING) for sizing calculat...
authorFilip Navara <filip.navara@gmail.com>
Sun, 27 Feb 2005 14:55:01 +0000 (14:55 +0000)
committerFilip Navara <filip.navara@gmail.com>
Sun, 27 Feb 2005 14:55:01 +0000 (14:55 +0000)
svn path=/trunk/; revision=13764

reactos/lib/user32/windows/defwnd.c

index 00cec8d..b478cf5 100644 (file)
@@ -418,7 +418,7 @@ DefWndDoSizeMove(HWND hwnd, WORD wParam)
 {
   HRGN DesktopRgn;
   MSG msg;
 {
   HRGN DesktopRgn;
   MSG msg;
-  RECT sizingRect, mouseRect, origRect, clipRect;
+  RECT sizingRect, mouseRect, origRect, clipRect, unmodRect;
   HDC hdc;
   LONG hittest = (LONG)(wParam & 0x0f);
   HCURSOR hDragCursor = 0, hOldCursor = 0;
   HDC hdc;
   LONG hittest = (LONG)(wParam & 0x0f);
   HCURSOR hDragCursor = 0, hOldCursor = 0;
@@ -487,6 +487,7 @@ DefWndDoSizeMove(HWND hwnd, WORD wParam)
   
   WinPosGetMinMaxInfo(hwnd, NULL, NULL, &minTrack, &maxTrack);
   GetWindowRect(hwnd, &sizingRect);
   
   WinPosGetMinMaxInfo(hwnd, NULL, NULL, &minTrack, &maxTrack);
   GetWindowRect(hwnd, &sizingRect);
+  GetWindowRect(hwnd, &unmodRect);  
   if (Style & WS_CHILD)
     {
       MapWindowPoints( 0, hWndParent, (LPPOINT)&sizingRect, 2 );
   if (Style & WS_CHILD)
     {
       MapWindowPoints( 0, hWndParent, (LPPOINT)&sizingRect, 2 );
@@ -623,7 +624,7 @@ DefWndDoSizeMove(HWND hwnd, WORD wParam)
          if (msg.message == WM_KEYDOWN) SetCursorPos( pt.x, pt.y );
          else
            {
          if (msg.message == WM_KEYDOWN) SetCursorPos( pt.x, pt.y );
          else
            {
-             RECT newRect = sizingRect;
+             RECT newRect = unmodRect;
              WPARAM wpSizingHit = 0;
              
              if (hittest == HTCAPTION) OffsetRect( &newRect, dx, dy );
              WPARAM wpSizingHit = 0;
              
              if (hittest == HTCAPTION) OffsetRect( &newRect, dx, dy );
@@ -637,6 +638,7 @@ DefWndDoSizeMove(HWND hwnd, WORD wParam)
              /* determine the hit location */
              if (hittest >= HTLEFT && hittest <= HTBOTTOMRIGHT)
                wpSizingHit = WMSZ_LEFT + (hittest - HTLEFT);
              /* determine the hit location */
              if (hittest >= HTLEFT && hittest <= HTBOTTOMRIGHT)
                wpSizingHit = WMSZ_LEFT + (hittest - HTLEFT);
+             unmodRect = newRect;
              SendMessageA( hwnd, WM_SIZING, wpSizingHit, (LPARAM)&newRect );
              
              if (!iconic)
              SendMessageA( hwnd, WM_SIZING, wpSizingHit, (LPARAM)&newRect );
              
              if (!iconic)