Alexandre Julliard : user32: Don' t invalidate DCEs for sibling top-level windows since they are not clipped.
Module: wine Branch: master Commit: 1dba866e6175d5de4a33a81b26c415a646484e41 URL: http://source.winehq.org/git/wine.git/?a=commit;h=1dba866e6175d5de4a33a81b26... Author: Alexandre Julliard <julliard(a)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();
participants (1)
-
Alexandre Julliard