Fix redraw bug by correcting nonclient region calculation. (Window->UpdateRegion has no proper values)

TODO: calculate and/or update  Window->UpdateRegion properly
See issue #4181 for details.

svn path=/trunk/; revision=42836
This commit is contained in:
Matthias Kupfer 2009-08-21 22:23:22 +00:00
parent 5ad980f439
commit b728102816

View file

@ -168,7 +168,7 @@ IntGetNCUpdateRgn(PWINDOW_OBJECT Window, BOOL Validate)
if (Window->UpdateRegion != NULL && if (Window->UpdateRegion != NULL &&
Window->UpdateRegion != (HRGN)1) Window->UpdateRegion != (HRGN)1)
{ {
hRgnNonClient = NtGdiCreateRectRgn(0, 0, 0, 0); hRgnNonClient = IntCalcWindowRgn(Window, FALSE);
/* /*
* If region creation fails it's safe to fallback to whole * If region creation fails it's safe to fallback to whole
@ -186,7 +186,7 @@ IntGetNCUpdateRgn(PWINDOW_OBJECT Window, BOOL Validate)
return (HRGN)1; return (HRGN)1;
} }
RgnType = NtGdiCombineRgn(hRgnNonClient, Window->UpdateRegion, RgnType = NtGdiCombineRgn(hRgnNonClient, hRgnNonClient,
hRgnWindow, RGN_DIFF); hRgnWindow, RGN_DIFF);
if (RgnType == ERROR) if (RgnType == ERROR)
{ {