[PATCH 0/1] MR9507: winex11: Avoid unmapping window if it only got layered style.
Layered window will need to be explicitly hidden, after layered style is added, and we shouldn't hide them ourselves as the style might just get removed right away. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58984 -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9507
From: Rémi Bernon <rbernon(a)codeweavers.com> Layered window will need to be explicitly hidden, after layered style is added, and we shouldn't hide them ourselves as the style might just get removed right away. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58984 --- dlls/winex11.drv/window.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c index 0eddc40da0c..1afa8724f9f 100644 --- a/dlls/winex11.drv/window.c +++ b/dlls/winex11.drv/window.c @@ -3192,7 +3192,12 @@ void X11DRV_WindowPosChanged( HWND hwnd, HWND insert_after, HWND owner_hint, UIN debugstr_window_rects(new_rects), new_style, swp_flags ); /* layered windows are mapped only once their attributes are set */ - if (ex_style & WS_EX_LAYERED && !data->layered && !IsRectEmpty( &new_rects->window )) new_style &= ~WS_VISIBLE; + if (data->pending_state.wm_state == WithdrawnState && (new_style & WS_VISIBLE) && + (ex_style & WS_EX_LAYERED) && !data->layered && !IsRectEmpty( &new_rects->window )) + { + WARN( "win %p/%lx is layered, delaying mapping\n", hwnd, data->whole_window ); + new_style &= ~WS_VISIBLE; + } XFlush( gdi_display ); /* make sure painting is done before we move the window */ -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9507
participants (1)
-
Rémi Bernon