Limit invalidate region if required
authorGé van Geldorp <ge@gse.nl>
Sun, 4 Dec 2005 22:31:43 +0000 (22:31 +0000)
committerGé van Geldorp <ge@gse.nl>
Sun, 4 Dec 2005 22:31:43 +0000 (22:31 +0000)
svn path=/trunk/; revision=19894

reactos/subsys/win32k/ntuser/painting.c

index 575dc4e..524f39c 100644 (file)
@@ -319,6 +319,19 @@ IntInvalidateWindows(PWINDOW_OBJECT Window, HRGN hRgn, ULONG Flags)
    BOOL HadPaintMessage, HadNCPaintMessage;
    BOOL HasPaintMessage, HasNCPaintMessage;
 
+   /*
+    * If the nonclient is not to be redrawn, clip the region to the client
+    * rect
+    */
+   if (0 != (Flags & RDW_INVALIDATE) && 0 == (Flags & RDW_FRAME))
+   {
+      HRGN hRgnClient;
+
+      hRgnClient = UnsafeIntCreateRectRgnIndirect(&Window->ClientRect);
+      RgnType = NtGdiCombineRgn(hRgn, hRgn, hRgnClient, RGN_AND);
+      NtGdiDeleteObject(hRgnClient);
+   }
+
    /*
     * Clip the given region with window rectangle (or region)
     */