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/paintin... ============================================================================== --- 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/paintin... ============================================================================== --- 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) );