- Fixed one of the msg:msg_paint:test_paint_messages while looking for another issue. See CORE-7166.
svn path=/trunk/; revision=72523
#include <win32k.h>
DBG_DEFAULT_CHANNEL(UserPainting);
-#define RDW_CLIPCHILDREN 4096
-#define RDW_NOUPDATEDIRTY 32768
-
/* PRIVATE FUNCTIONS **********************************************************/
/**
#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)
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);
#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 &&
}
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) );