user32: Don't invalidate DCEs for sibling top-level windows since they are not clipped.

This commit is contained in:
Alexandre Julliard 2012-04-19 16:34:37 +02:00
parent 8b64a2f13c
commit 1dba866e61
1 changed files with 9 additions and 10 deletions

View File

@ -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();