From: Rémi Bernon rbernon@codeweavers.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=57650 --- dlls/winex11.drv/window.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c index 1d43c4edbdb..bd4d1fdfa96 100644 --- a/dlls/winex11.drv/window.c +++ b/dlls/winex11.drv/window.c @@ -1444,7 +1444,8 @@ static void window_set_wm_state( struct x11drv_win_data *data, UINT new_state )
data->desired_state.wm_state = new_state; if (!data->whole_window) return; /* no window, nothing to update */ - if (data->wm_state_serial) return; /* another WM_STATE update is pending, wait for it to complete */ + if (data->wm_state_serial && !data->current_state.wm_state != !data->pending_state.wm_state) + return; /* another map/unmap WM_STATE update is pending, wait for it to complete */ if (old_state == new_state) return; /* states are the same, nothing to update */
switch (MAKELONG(old_state, new_state))
Fwiw I'm not completely sure this is a good idea to do this late.