Use unadjusted rect (the one calculated before sending WM_SIZING) for
sizing calculations while resizing windows.
Modified: trunk/reactos/lib/user32/windows/defwnd.c
_____
Modified: trunk/reactos/lib/user32/windows/defwnd.c
--- trunk/reactos/lib/user32/windows/defwnd.c 2005-02-27 12:43:37 UTC
(rev 13763)
+++ trunk/reactos/lib/user32/windows/defwnd.c 2005-02-27 14:55:01 UTC
(rev 13764)
@@ -418,7 +418,7 @@
{
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;
@@ -487,6 +487,7 @@
WinPosGetMinMaxInfo(hwnd, NULL, NULL, &minTrack, &maxTrack);
GetWindowRect(hwnd, &sizingRect);
+ GetWindowRect(hwnd, &unmodRect);
if (Style & WS_CHILD)
{
MapWindowPoints( 0, hWndParent, (LPPOINT)&sizingRect, 2 );
@@ -623,7 +624,7 @@
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 );
@@ -637,6 +638,7 @@
/* 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)
Show replies by date