Module: wine Branch: master Commit: 1dba866e6175d5de4a33a81b26c415a646484e41 URL: http://source.winehq.org/git/wine.git/?a=commit;h=1dba866e6175d5de4a33a81b26...
Author: Alexandre Julliard julliard@winehq.org Date: Thu Apr 19 16:34:37 2012 +0200
user32: Don't invalidate DCEs for sibling top-level windows since they are not clipped.
---
dlls/user32/painting.c | 19 +++++++++---------- 1 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/dlls/user32/painting.c b/dlls/user32/painting.c index c3a25fb..60252c6 100644 --- a/dlls/user32/painting.c +++ b/dlls/user32/painting.c @@ -425,18 +425,17 @@ void invalidate_dce( HWND hwnd, const RECT *extra_rect ) if (dce->hwnd == hwnd || IsChild( hwnd, dce->hwnd )) { make_dc_dirty( dce ); + continue; } - else /* otherwise check if the window rectangle intersects this DCE window */ + + /* otherwise check if the window rectangle intersects this DCE window */ + if (hwndScope == dce->hwnd || IsChild( hwndScope, dce->hwnd )) { - if (hwndScope == GetDesktopWindow() || - hwndScope == dce->hwnd || IsChild( hwndScope, dce->hwnd )) - { - RECT dce_rect, tmp; - GetWindowRect( dce->hwnd, &dce_rect ); - if (IntersectRect( &tmp, &dce_rect, &window_rect ) || - (extra_rect && IntersectRect( &tmp, &dce_rect, extra_rect ))) - make_dc_dirty( dce ); - } + RECT dce_rect, tmp; + GetWindowRect( dce->hwnd, &dce_rect ); + if (IntersectRect( &tmp, &dce_rect, &window_rect ) || + (extra_rect && IntersectRect( &tmp, &dce_rect, extra_rect ))) + make_dc_dirty( dce ); } } USER_Unlock();