From 51e5c11dc84ebcdcb3578a11e6ec17c328e4b00d Mon Sep 17 00:00:00 2001 From: Filip Navara Date: Mon, 2 May 2005 14:05:38 +0000 Subject: [PATCH] Fix Alex's completely wrong fix for NtUserScrollWindowEx (aka bug #606). svn path=/trunk/; revision=14947 --- reactos/subsys/win32k/ntuser/painting.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/reactos/subsys/win32k/ntuser/painting.c b/reactos/subsys/win32k/ntuser/painting.c index 18cab7b6698..9e8d7968a96 100644 --- a/reactos/subsys/win32k/ntuser/painting.c +++ b/reactos/subsys/win32k/ntuser/painting.c @@ -1211,17 +1211,19 @@ NtUserScrollWindowEx(HWND hWnd, INT dx, INT dy, const RECT *UnsafeRect, { int i; RECT r, dummy; + POINT ClientOrigin; PWINDOW_OBJECT WindowObject; + IntGetClientOrigin(hWnd, &ClientOrigin); for (i = 0; List[i]; i++) { - NtUserGetWindowRect(List[i], &r); - WindowObject = IntGetWindowObject((hWnd ? hWnd : IntGetDesktopWindow())); + WindowObject = IntGetWindowObject(List[i]); if (!WindowObject) continue; - r.left -= WindowObject->ClientRect.top; - r.top -= WindowObject->ClientRect.top; - r.right -= WindowObject->ClientRect.left; - r.bottom -= WindowObject->ClientRect.top; + r = WindowObject->WindowRect; + r.left -= ClientOrigin.x; + r.top -= ClientOrigin.y; + r.right -= ClientOrigin.x; + r.bottom -= ClientOrigin.y; IntReleaseWindowObject(WindowObject); if (! UnsafeRect || IntGdiIntersectRect(&dummy, &r, &rc)) WinPosSetWindowPos(List[i], 0, r.left + dx, r.top + dy, 0, 0,