From cdb2bfe884743f3df8825bfeecef3aaf27e6470d Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Tue, 8 Mar 2005 19:26:57 +0000 Subject: [PATCH] Process only pending expose events during RDW_UPDATENOW, not all the other X events. --- dlls/user/painting.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/dlls/user/painting.c b/dlls/user/painting.c index 0bd84b07f97..256ca20e29d 100644 --- a/dlls/user/painting.c +++ b/dlls/user/painting.c @@ -328,6 +328,9 @@ static void update_now( HWND hwnd, UINT rdw_flags ) { HWND prev = 0, child; + /* process pending expose events before painting */ + MsgWaitForMultipleObjects( 0, NULL, FALSE, 0, QS_PAINT ); + /* desktop window never gets WM_PAINT, only WM_ERASEBKGND */ if (hwnd == GetDesktopWindow()) erase_now( hwnd, rdw_flags | RDW_NOCHILDREN ); @@ -426,10 +429,6 @@ BOOL WINAPI RedrawWindow( HWND hwnd, const RECT *rect, HRGN hrgn, UINT flags ) if (!WIN_IsWindowDrawable( hwnd, !(flags & RDW_FRAME) )) return TRUE; - /* process pending events and messages before painting */ - if (flags & RDW_UPDATENOW) - MsgWaitForMultipleObjects( 0, NULL, FALSE, 0, QS_ALLINPUT ); - if (TRACE_ON(win)) { if (hrgn)