Don't call internal function which checks parameters since our parameter is kernel mode. Modified: trunk/reactos/subsys/win32k/ntuser/painting.c _____
Modified: trunk/reactos/subsys/win32k/ntuser/painting.c --- trunk/reactos/subsys/win32k/ntuser/painting.c 2005-05-02 11:03:54 UTC (rev 14944) +++ trunk/reactos/subsys/win32k/ntuser/painting.c 2005-05-02 11:38:48 UTC (rev 14945) @@ -1211,16 +1211,18 @@
{ int i; RECT r, dummy; - POINT ClientOrigin; + PWINDOW_OBJECT WindowObject;
for (i = 0; List[i]; i++) { NtUserGetWindowRect(List[i], &r); - IntGetClientOrigin(hWnd, &ClientOrigin); - r.left -= ClientOrigin.x; - r.top -= ClientOrigin.y; - r.right -= ClientOrigin.x; - r.bottom -= ClientOrigin.y; + WindowObject = IntGetWindowObject((hWnd ? hWnd : IntGetDesktopWindow())); + if (!WindowObject) continue; + r.left -= WindowObject->ClientRect.top; + r.top -= WindowObject->ClientRect.top; + r.right -= WindowObject->ClientRect.left; + r.bottom -= WindowObject->ClientRect.top; + IntReleaseWindowObject(WindowObject); if (! UnsafeRect || IntGdiIntersectRect(&dummy, &r, &rc)) WinPosSetWindowPos(List[i], 0, r.left + dx, r.top + dy, 0, 0, SWP_NOZORDER | SWP_NOSIZE | SWP_NOACTIVATE |