Fix Alex's completely wrong fix for NtUserScrollWindowEx (aka bug #606).

svn path=/trunk/; revision=14947
This commit is contained in:
Filip Navara 2005-05-02 14:05:38 +00:00
parent 6c331c3529
commit 51e5c11dc8

View file

@ -1211,17 +1211,19 @@ NtUserScrollWindowEx(HWND hWnd, INT dx, INT dy, const RECT *UnsafeRect,
{ {
int i; int i;
RECT r, dummy; RECT r, dummy;
POINT ClientOrigin;
PWINDOW_OBJECT WindowObject; PWINDOW_OBJECT WindowObject;
IntGetClientOrigin(hWnd, &ClientOrigin);
for (i = 0; List[i]; i++) for (i = 0; List[i]; i++)
{ {
NtUserGetWindowRect(List[i], &r); WindowObject = IntGetWindowObject(List[i]);
WindowObject = IntGetWindowObject((hWnd ? hWnd : IntGetDesktopWindow()));
if (!WindowObject) continue; if (!WindowObject) continue;
r.left -= WindowObject->ClientRect.top; r = WindowObject->WindowRect;
r.top -= WindowObject->ClientRect.top; r.left -= ClientOrigin.x;
r.right -= WindowObject->ClientRect.left; r.top -= ClientOrigin.y;
r.bottom -= WindowObject->ClientRect.top; r.right -= ClientOrigin.x;
r.bottom -= ClientOrigin.y;
IntReleaseWindowObject(WindowObject); IntReleaseWindowObject(WindowObject);
if (! UnsafeRect || IntGdiIntersectRect(&dummy, &r, &rc)) if (! UnsafeRect || IntGdiIntersectRect(&dummy, &r, &rc))
WinPosSetWindowPos(List[i], 0, r.left + dx, r.top + dy, 0, 0, WinPosSetWindowPos(List[i], 0, r.left + dx, r.top + dy, 0, 0,