co_WinPosSetWindowPos: fix the redrawing (instead of simply removing some code, like my last commit, sorry). Now it works more like on windows and both the problem of a blank control panel and ugly wizard pages are gone. Fixes bug 735, see also bug 902, may fix bug 2141.

See issue #735 for more details.

svn path=/trunk/; revision=27394
This commit is contained in:
Timo Kreuzer 2007-07-04 22:22:30 +00:00
parent 9dc5649fa5
commit f1a7f30887

View file

@ -1223,11 +1223,20 @@ co_WinPosSetWindowPos(
}
if (RgnType != ERROR && RgnType != NULLREGION)
{
PWINDOW_OBJECT Parent = Window->Parent;
NtGdiOffsetRgn(DirtyRgn,
Window->WindowRect.left,
Window->WindowRect.top);
if ((Window->Style & WS_CHILD) &&
(Parent) &&
!(Parent->Style & WS_CLIPCHILDREN))
{
IntInvalidateWindows(Parent, DirtyRgn,
RDW_ERASE | RDW_INVALIDATE);
co_IntPaintWindows(Parent, RDW_ERASENOW, FALSE);
}
IntInvalidateWindows(Window, DirtyRgn,
RDW_ERASE | RDW_FRAME | RDW_INVALIDATE | RDW_ALLCHILDREN);
RDW_ERASE | RDW_FRAME | RDW_INVALIDATE | RDW_ALLCHILDREN);
}
NtGdiDeleteObject(DirtyRgn);
}