user32: Change the position and size of layered windows before flushing their surfaces.
When UpdateLayeredWindow() is called to paint a window and update its size, USER_Driver->pUpdateLayeredWindow() needs to be called after the window position and size are updated. Otherwise, UpdateLayeredWindow() may flush the painted content to a smaller window and then enlarge it, losing the painted result. Fix Word 2016 window frame corruption after restoring from maximized state. Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
e45d51fdda
commit
8892b79118
|
@ -4134,10 +4134,8 @@ BOOL WINAPI UpdateLayeredWindowIndirect( HWND hwnd, const UPDATELAYEREDWINDOWINF
|
|||
TRACE( "window %p win %s client %s\n", hwnd,
|
||||
wine_dbgstr_rect(&window_rect), wine_dbgstr_rect(&client_rect) );
|
||||
|
||||
if (!USER_Driver->pUpdateLayeredWindow( hwnd, info, &window_rect )) return FALSE;
|
||||
|
||||
set_window_pos( hwnd, 0, flags, &window_rect, &client_rect, NULL );
|
||||
return TRUE;
|
||||
return USER_Driver->pUpdateLayeredWindow( hwnd, info, &window_rect );
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue