[ros-diffs] [jimtabor] 29893: ScrollDC From my notes 08/16/2003: - Wine testing was not enough. If dx & dy are zero and hrgn and lprc are used or not zero. The Rect for hrgn and lprc are set zero w/o NtUserScrollDC being called. It just returns TRUE. - If HDC is zero it will return FALSE and not call NtUserScrollDC.

jimtabor at svn.reactos.org jimtabor at svn.reactos.org
Fri Oct 26 04:07:34 CEST 2007


Author: jimtabor
Date: Fri Oct 26 06:07:33 2007
New Revision: 29893

URL: http://svn.reactos.org/svn/reactos?rev=29893&view=rev
Log:
ScrollDC From my notes 08/16/2003:
- Wine testing was not enough. If dx & dy are zero and hrgn and lprc are used or not zero. The Rect for hrgn and lprc are set zero w/o NtUserScrollDC being called. It just returns TRUE.
- If HDC is zero it will return FALSE and not call NtUserScrollDC.

Modified:
    trunk/reactos/dll/win32/user32/windows/paint.c

Modified: trunk/reactos/dll/win32/user32/windows/paint.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/user32/windows/paint.c?rev=29893&r1=29892&r2=29893&view=diff
==============================================================================
--- trunk/reactos/dll/win32/user32/windows/paint.c (original)
+++ trunk/reactos/dll/win32/user32/windows/paint.c Fri Oct 26 06:07:33 2007
@@ -185,6 +185,16 @@
 ScrollDC(HDC hDC, int dx, int dy, CONST RECT *lprcScroll, CONST RECT *lprcClip,
    HRGN hrgnUpdate, LPRECT lprcUpdate)
 {
+   if (hDC == NULL) return FALSE;
+
+   if (dx == 0 && dy == 0)
+   {
+      if (hrgnUpdate) SetRectRgn(hrgnUpdate, 0, 0, 0, 0);
+      if (lprcUpdate) lprcUpdate->left = lprcUpdate->right =
+                      lprcUpdate->top = lprcUpdate->bottom = 0;
+      return TRUE;
+   }
+
    return NtUserScrollDC(hDC, dx, dy, lprcScroll, lprcClip, hrgnUpdate,
       lprcUpdate);
 }




More information about the Ros-diffs mailing list