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/nt…
==============================================================================
--- 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);
}