From a22dd45a79b80e1496820c7c7b81d9185755ff82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Iv=C4=83ncescu?= Date: Wed, 22 Dec 2021 20:17:03 +0200 Subject: [PATCH] winex11.drv: Map the window in UpdateLayeredWindow. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes a regression introduced by 8892b79118fde5f2307ecbbdb03a8d0c489c8b3d, because set_window_pos is called before UpdateLayeredWindow, which calls the driver's WindowPosChanged earlier. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51984 Signed-off-by: Gabriel Ivăncescu Signed-off-by: Alexandre Julliard --- dlls/winex11.drv/window.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c index 29473ceba06..36fb41ac710 100644 --- a/dlls/winex11.drv/window.c +++ b/dlls/winex11.drv/window.c @@ -2716,7 +2716,7 @@ BOOL CDECL X11DRV_UpdateLayeredWindow( HWND hwnd, const UPDATELAYEREDWINDOWINFO RECT rect, src_rect; HDC hdc = 0; HBITMAP dib; - BOOL ret = FALSE; + BOOL mapped, ret = FALSE; if (!(data = get_win_data( hwnd ))) return FALSE; @@ -2737,8 +2737,18 @@ BOOL CDECL X11DRV_UpdateLayeredWindow( HWND hwnd, const UPDATELAYEREDWINDOWINFO else set_surface_color_key( surface, color_key ); if (surface) window_surface_add_ref( surface ); + mapped = data->mapped; release_win_data( data ); + /* layered windows are mapped only once their attributes are set */ + if (!mapped) + { + DWORD style = GetWindowLongW( hwnd, GWL_STYLE ); + + if ((style & WS_VISIBLE) && ((style & WS_MINIMIZE) || is_window_rect_mapped( window_rect ))) + map_window( hwnd, style ); + } + if (!surface) return FALSE; if (!info->hdcSrc) {