From ddf41276e145896664834828389d1ff6f1567f8c Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Mon, 1 Oct 2012 13:17:53 +0200 Subject: [PATCH] user32: Invalid DCEs when the window surface changes. --- dlls/user32/winpos.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/dlls/user32/winpos.c b/dlls/user32/winpos.c index 0593140bbf7..c866a5dddb8 100644 --- a/dlls/user32/winpos.c +++ b/dlls/user32/winpos.c @@ -2017,9 +2017,13 @@ BOOL set_window_pos( HWND hwnd, HWND insert_after, UINT swp_flags, } SERVER_END_REQ; - if (ret && (((swp_flags & SWP_AGG_NOPOSCHANGE) != SWP_AGG_NOPOSCHANGE) || - (swp_flags & (SWP_HIDEWINDOW | SWP_SHOWWINDOW | SWP_STATECHANGED | SWP_FRAMECHANGED)))) - invalidate_dce( win, &old_window_rect ); + if (ret) + { + if (old_surface != new_surface || + ((swp_flags & SWP_AGG_NOPOSCHANGE) != SWP_AGG_NOPOSCHANGE) || + (swp_flags & (SWP_HIDEWINDOW | SWP_SHOWWINDOW | SWP_STATECHANGED | SWP_FRAMECHANGED))) + invalidate_dce( win, &old_window_rect ); + } WIN_ReleasePtr( win );