Author: jimtabor
Date: Wed Aug 31 20:38:09 2016
New Revision: 72523
URL:
http://svn.reactos.org/svn/reactos?rev=72523&view=rev
Log:
[NtUser]
- Fixed one of the msg:msg_paint:test_paint_messages while looking for another issue. See
CORE-7166.
Modified:
trunk/reactos/win32ss/user/ntuser/painting.c
trunk/reactos/win32ss/user/ntuser/painting.h
trunk/reactos/win32ss/user/ntuser/winpos.c
Modified: trunk/reactos/win32ss/user/ntuser/painting.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/painti…
==============================================================================
--- trunk/reactos/win32ss/user/ntuser/painting.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/ntuser/painting.c [iso-8859-1] Wed Aug 31 20:38:09 2016
@@ -8,9 +8,6 @@
#include <win32k.h>
DBG_DEFAULT_CHANNEL(UserPainting);
-
-#define RDW_CLIPCHILDREN 4096
-#define RDW_NOUPDATEDIRTY 32768
/* PRIVATE FUNCTIONS **********************************************************/
Modified: trunk/reactos/win32ss/user/ntuser/painting.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/painti…
==============================================================================
--- trunk/reactos/win32ss/user/ntuser/painting.h [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/ntuser/painting.h [iso-8859-1] Wed Aug 31 20:38:09 2016
@@ -11,6 +11,9 @@
#define PRGN_NULL ((PREGION)0) /* NULL empty region */
#define PRGN_WINDOW ((PREGION)1) /* region from window rcWindow */
#define PRGN_MONITOR ((PREGION)2) /* region from monitor region. */
+
+#define RDW_CLIPCHILDREN 4096
+#define RDW_NOUPDATEDIRTY 32768
#define GreCreateRectRgnIndirect(prc) \
NtGdiCreateRectRgn((prc)->left, (prc)->top, (prc)->right, (prc)->bottom)
@@ -36,4 +39,4 @@
BOOL FASTCALL IntIsWindowDrawable(PWND);
BOOL UserDrawCaption(PWND,HDC,RECTL*,HFONT,HICON,const PUNICODE_STRING,UINT);
VOID FASTCALL UpdateThreadWindows(PWND,PTHREADINFO,HRGN);
-
+VOID FASTCALL UserSyncAndPaintWindows(PWND pWnd, ULONG Flags);
Modified: trunk/reactos/win32ss/user/ntuser/winpos.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/winpos…
==============================================================================
--- trunk/reactos/win32ss/user/ntuser/winpos.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/ntuser/winpos.c [iso-8859-1] Wed Aug 31 20:38:09 2016
@@ -2241,6 +2241,19 @@
#endif
}
+ if ( !PosChanged &&
+ (WinPos.flags & SWP_FRAMECHANGED) &&
+ !(WinPos.flags & SWP_DEFERERASE) && // Prevent sending
WM_SYNCPAINT message.
+ VisAfter )
+ {
+ PWND Parent = Window->spwndParent;
+ if ( !(Window->style & WS_CHILD) && (Parent) &&
(Parent->style & WS_CLIPCHILDREN))
+ {
+ TRACE("SWP_FRAMECHANGED Parent WS_CLIPCHILDREN\n");
+ UserSyncAndPaintWindows( Parent, RDW_CLIPCHILDREN);
+ }
+ }
+
// Fix wine msg test_SetFocus, prevents sending WM_WINDOWPOSCHANGED.
if ( VisBefore == NULL &&
VisBeforeJustClient == NULL &&
@@ -3396,7 +3409,7 @@
}
else
{
- Window->hrgnNewFrame = (HRGN) 1;
+ Window->hrgnNewFrame = HRGN_WINDOW;
}
//// HACK 2
Ret = co_WinPosSetWindowPos(Window, HWND_TOP, 0, 0, 0, 0, bRedraw ? flags :
(flags|SWP_NOREDRAW) );