Updated winex11.drv-Query_server_position patchset

Reverted to the older patch to stop issues with windows
not being hidden correctly.
This commit is contained in:
Alistair Leslie-Hughes 2020-10-22 12:18:55 +11:00
parent 8d07859cb1
commit 8d04884c1f
3 changed files with 7 additions and 49 deletions

View File

@ -5042,7 +5042,6 @@ fi
# | * dlls/winex11.drv/window.c
# |
if test "$enable_winex11_drv_Query_server_position" -eq 1; then
patch_apply winex11.drv-Query_server_position/0001-winex11.drv-Let-the-Window-Manager-handle-the-off-sc.patch
patch_apply winex11.drv-Query_server_position/0001-winex11.drv-window-Query-the-X-server-for-the-actual.patch
fi

View File

@ -1,41 +0,0 @@
From 35214fc80597835fdf985fc2d900dfe4ab5c2945 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gabriel=20Iv=C4=83ncescu?= <gabrielopcode@gmail.com>
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 <gabrielopcode@gmail.com>
---
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

View File

@ -1,4 +1,4 @@
From 36f2e96f24e12696d5ea1f758cfbf5425db2c675 Mon Sep 17 00:00:00 2001
From 38d9b194e83b02f56d734da88396ac06ddb7af1f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gabriel=20Iv=C4=83ncescu?= <gabrielopcode@gmail.com>
Date: Mon, 24 Dec 2018 14:26:57 +0200
Subject: [PATCH] winex11.drv/window: Query the X server for the actual rect of
@ -22,10 +22,10 @@ Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c
index a850ae16a55..fb0e5aa68a6 100644
index 97dee52..7f436ac 100644
--- a/dlls/winex11.drv/window.c
+++ b/dlls/winex11.drv/window.c
@@ -197,6 +197,25 @@ static BOOL has_owned_popups( HWND hwnd )
@@ -196,6 +196,25 @@ static BOOL has_owned_popups( HWND hwnd )
return result.found;
}
@ -51,7 +51,7 @@ index a850ae16a55..fb0e5aa68a6 100644
/***********************************************************************
* alloc_win_data
@@ -2503,7 +2522,8 @@ void CDECL X11DRV_WindowPosChanged( HWND hwnd, HWND insert_after, UINT swp_flags
@@ -2400,7 +2419,8 @@ void CDECL X11DRV_WindowPosChanged( HWND hwnd, HWND insert_after, UINT swp_flags
{
if (((swp_flags & SWP_HIDEWINDOW) && !(new_style & WS_VISIBLE)) ||
(!event_type && !(new_style & WS_MINIMIZE) &&
@ -59,8 +59,8 @@ index a850ae16a55..fb0e5aa68a6 100644
+ !is_window_rect_mapped( rectWindow ) && is_window_rect_mapped( &old_window_rect ) &&
+ !is_actual_window_rect_mapped( data )))
{
BOOL managed = data->managed;
release_win_data( data );
unmap_window( hwnd );
--
2.28.0
1.9.1