Zhiyi Zhang : winex11.drv: Always update _NET_WM_STATE in update_net_wm_states().

Alexandre Julliard julliard at winehq.org
Wed Aug 26 15:24:44 CDT 2020


Module: wine
Branch: master
Commit: c5ec1585f6e5211a2b63e3435748210552250534
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=c5ec1585f6e5211a2b63e3435748210552250534

Author: Zhiyi Zhang <zzhang at codeweavers.com>
Date:   Tue Aug 25 15:20:39 2020 +0800

winex11.drv: Always update _NET_WM_STATE in update_net_wm_states().

KWin treats a window covering exactly the whole monitor as maximized
when handling its first map request and expects applications to update
maximized state later. Wine doesn't know about this added maximized
state and expect it unchanged, making the window always maximized
as far as KWin is concerned. So always send _NET_WM_STATE updates
even if Wine doesn't expect changes to hint KWin that a window should
not be maximized.

Fix test failures when running the tests introduced by
36b720357bcaf0a1e625f488e0c981ce10e8affa with KWin.

Signed-off-by: Zhiyi Zhang <zzhang at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/winex11.drv/window.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c
index f4920b802e..09475d1adb 100644
--- a/dlls/winex11.drv/window.c
+++ b/dlls/winex11.drv/window.c
@@ -996,8 +996,6 @@ void update_net_wm_states( struct x11drv_win_data *data )
 
         for (i = 0; i < NB_NET_WM_STATES; i++)
         {
-            if (!((data->net_wm_state ^ new_state) & (1 << i))) continue;  /* unchanged */
-
             TRACE( "setting wm state %u for window %p/%lx to %u prev %u\n",
                    i, data->hwnd, data->whole_window,
                    (new_state & (1 << i)) != 0, (data->net_wm_state & (1 << i)) != 0 );




More information about the wine-cvs mailing list