[2/5] winex11.drv: Fix wait_for_withdrawn_state on the desktop window.
Vincent Povirk
madewokherd at gmail.com
Tue Feb 18 17:02:08 CST 2014
I guess we never had to do this for a desktop window before. Also,
StructureNotifyMask (which I think we need for
wait_for_withdrawn_state to work correctly) means we get
ConfigureNotify events on the desktop window, which cause other
problems. Someday it might be nice to translate those ConfigureNotify
events to screen resizes.
-------------- next part --------------
From 15ce7dad0d719ce3a7979512944899e844af3a81 Mon Sep 17 00:00:00 2001
From: Vincent Povirk <vincent at codeweavers.com>
Date: Tue, 18 Feb 2014 15:19:09 -0600
Subject: [PATCH 2/6] winex11.drv: Fix wait_for_withdrawn_state on the desktop
window.
---
dlls/winex11.drv/desktop.c | 3 ++-
dlls/winex11.drv/event.c | 1 +
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/dlls/winex11.drv/desktop.c b/dlls/winex11.drv/desktop.c
index 603e19f..292c6b4 100644
--- a/dlls/winex11.drv/desktop.c
+++ b/dlls/winex11.drv/desktop.c
@@ -149,7 +149,8 @@ BOOL CDECL X11DRV_create_desktop( UINT width, UINT height )
/* Create window */
win_attr.event_mask = ExposureMask | KeyPressMask | KeyReleaseMask | EnterWindowMask |
- PointerMotionMask | ButtonPressMask | ButtonReleaseMask | FocusChangeMask;
+ PointerMotionMask | ButtonPressMask | ButtonReleaseMask |
+ FocusChangeMask | StructureNotifyMask | PropertyChangeMask;
win_attr.cursor = XCreateFontCursor( display, XC_top_left_arrow );
if (default_visual.visual != DefaultVisual( display, DefaultScreen(display) ))
diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c
index ea24471..f8d4f18 100644
--- a/dlls/winex11.drv/event.c
+++ b/dlls/winex11.drv/event.c
@@ -1065,6 +1065,7 @@ void X11DRV_ConfigureNotify( HWND hwnd, XEvent *xev )
if (!hwnd) return;
if (!(data = get_win_data( hwnd ))) return;
if (!data->mapped || data->iconic) goto done;
+ if (root_window && root_window == data->whole_window) goto done;
if (data->whole_window && !data->managed) goto done;
/* ignore synthetic events on foreign windows */
if (event->send_event && !data->whole_window) goto done;
--
1.8.3.2
More information about the wine-patches
mailing list