From 05efccaeaf23d6475b1aa14ecf74639b57951df9 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Wed, 21 Oct 2020 20:19:12 +1100 Subject: [PATCH] Fix rebase --- ...the-Window-Manager-handle-the-off-sc.patch | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 patches/winex11.drv-Query_server_position/0001-winex11.drv-Let-the-Window-Manager-handle-the-off-sc.patch diff --git a/patches/winex11.drv-Query_server_position/0001-winex11.drv-Let-the-Window-Manager-handle-the-off-sc.patch b/patches/winex11.drv-Query_server_position/0001-winex11.drv-Let-the-Window-Manager-handle-the-off-sc.patch new file mode 100644 index 00000000..0d130270 --- /dev/null +++ b/patches/winex11.drv-Query_server_position/0001-winex11.drv-Let-the-Window-Manager-handle-the-off-sc.patch @@ -0,0 +1,41 @@ +From 35214fc80597835fdf985fc2d900dfe4ab5c2945 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Gabriel=20Iv=C4=83ncescu?= +Date: Wed, 14 Oct 2020 16:20:08 +0300 +Subject: [PATCH] winex11.drv: Let the Window Manager handle the off-screen + window if it's managed. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Some applications control their own position when they are being moved. This +means WindowPosChanged is called without an event. + +Window Managers have their own way to deal with offscreen windows, and we +have to respect that, if the window is managed. So let the WM handle this +situation instead of unmapping the window ourselves. + +Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=15346 +Signed-off-by: Gabriel Ivăncescu +--- + dlls/winex11.drv/window.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c +index 457173964eb..424acee118f 100644 +--- a/dlls/winex11.drv/window.c ++++ b/dlls/winex11.drv/window.c +@@ -2458,8 +2458,10 @@ void CDECL X11DRV_WindowPosChanged( HWND hwnd, HWND insert_after, UINT swp_flags + (!event_type && !(new_style & WS_MINIMIZE) && + !is_window_rect_mapped( rectWindow ) && is_window_rect_mapped( &old_window_rect ))) + { ++ BOOL managed = data->managed; ++ + release_win_data( data ); +- unmap_window( hwnd ); ++ if (!managed) unmap_window( hwnd ); + if (is_window_rect_full_screen( &old_window_rect )) reset_clipping_window(); + if (!(data = get_win_data( hwnd ))) return; + } +-- +2.28.0 +