user32: Rely on SetWindowPos to invalidate the DCEs when the window region is changed.

This commit is contained in:
Alexandre Julliard 2012-08-29 18:08:05 +02:00
parent f71be05ba7
commit 4890964e31
1 changed files with 2 additions and 4 deletions

View File

@ -213,14 +213,12 @@ int WINAPI SetWindowRgn( HWND hwnd, HRGN hrgn, BOOL bRedraw )
SERVER_END_REQ;
}
if (ret) ret = USER_Driver->pSetWindowRgn( hwnd, hrgn, bRedraw );
if (ret)
{
UINT swp_flags = SWP_NOSIZE|SWP_NOMOVE|SWP_NOZORDER|SWP_NOACTIVATE|SWP_FRAMECHANGED|SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE;
if (!bRedraw) swp_flags |= SWP_NOREDRAW;
SetWindowPos( hwnd, 0, 0, 0, 0, 0, swp_flags );
invalidate_dce( hwnd, NULL );
USER_Driver->pSetWindowRgn( hwnd, hrgn, bRedraw );
if (hrgn) DeleteObject( hrgn );
}
return ret;
@ -2004,7 +2002,7 @@ BOOL set_window_pos( HWND hwnd, HWND insert_after, UINT swp_flags,
if (ret)
{
if (((swp_flags & SWP_AGG_NOPOSCHANGE) != SWP_AGG_NOPOSCHANGE) ||
(swp_flags & (SWP_HIDEWINDOW | SWP_SHOWWINDOW | SWP_STATECHANGED)))
(swp_flags & (SWP_HIDEWINDOW | SWP_SHOWWINDOW | SWP_STATECHANGED | SWP_FRAMECHANGED)))
invalidate_dce( hwnd, &old_window_rect );
USER_Driver->pWindowPosChanged( hwnd, insert_after, swp_flags, window_rect,