diff --git a/reactos/subsys/win32k/ntuser/painting.c b/reactos/subsys/win32k/ntuser/painting.c index 575dc4e2135..524f39c41b3 100644 --- a/reactos/subsys/win32k/ntuser/painting.c +++ b/reactos/subsys/win32k/ntuser/painting.c @@ -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) */