[ros-diffs] [tkreuzer] 27394: 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.

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Thu Jul 5 00:22:32 CEST 2007


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/ntuser/winpos.c?rev=27394&r1=27393&r2=27394&view=diff
==============================================================================
--- 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);
       }




More information about the Ros-diffs mailing list