Module: wine Branch: master Commit: 1a4a1e53233f5313e969fadd9cac006dd97c162a URL: http://source.winehq.org/git/wine.git/?a=commit;h=1a4a1e53233f5313e969fadd9c...
Author: Alexandre Julliard julliard@winehq.org Date: Tue Sep 11 19:14:05 2012 +0200
user32: Check for the need to flush window surfaces every time a window finishes painting.
---
dlls/user32/painting.c | 4 +--- 1 files changed, 1 insertions(+), 3 deletions(-)
diff --git a/dlls/user32/painting.c b/dlls/user32/painting.c index 4def070..1a6de87 100644 --- a/dlls/user32/painting.c +++ b/dlls/user32/painting.c @@ -805,7 +805,6 @@ void move_window_bits( HWND hwnd, struct window_surface *old_surface, static void update_now( HWND hwnd, UINT rdw_flags ) { HWND child = 0; - int count = 0;
/* desktop window never gets WM_PAINT, only WM_ERASEBKGND */ if (hwnd == GetDesktopWindow()) erase_now( hwnd, rdw_flags | RDW_NOCHILDREN ); @@ -822,10 +821,8 @@ static void update_now( HWND hwnd, UINT rdw_flags ) if (!flags) break; /* nothing more to do */
SendMessageW( child, WM_PAINT, 0, 0 ); - count++; if (rdw_flags & RDW_NOCHILDREN) break; } - if (count) flush_window_surfaces( FALSE ); }
@@ -936,6 +933,7 @@ BOOL WINAPI EndPaint( HWND hwnd, const PAINTSTRUCT *lps ) if (!lps) return FALSE; release_dc( hwnd, lps->hdc, TRUE ); ShowCaret( hwnd ); + flush_window_surfaces( FALSE ); return TRUE; }