Author: tkreuzer Date: Thu Jul 5 02:22:30 2007 New Revision: 27394
URL: http://svn.reactos.org/svn/reactos?rev=27394&view=rev Log: 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.
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/winpos.c
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/winpos.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntu... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/winpos.c (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/winpos.c Thu Jul 5 02:22:30 2007 @@ -1223,11 +1223,20 @@ } 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); }