Workaround a GNOME bug when it doesn't respect window's full screen state

Dmitry Timoshkov dmitry at codeweavers.com
Mon Jul 3 05:55:10 CDT 2006


Hello,

this patch makes GNOME dock disappear when a window enters full screen state.
But GNOME top panel still remains on top, don't know yet how to workaround it.

Changelog:
    Workaround a GNOME bug when it doesn't respect window's full screen
    state by adding _NET_WM_STATE_ABOVE property to a window.

diff -up cvs/hq/wine/dlls/winex11.drv/winpos.c wine/dlls/winex11.drv/winpos.c
--- cvs/hq/wine/dlls/winex11.drv/winpos.c	2006-07-03 15:48:29.000000000 +0900
+++ wine/dlls/winex11.drv/winpos.c	2006-07-03 19:39:34.000000000 +0900
@@ -557,9 +557,10 @@ static void update_fullscreen_state( Dis
         xev.xclient.format = 32;
         xev.xclient.data.l[0] = new_fs_state ? _NET_WM_STATE_ADD : _NET_WM_STATE_REMOVE;
         xev.xclient.data.l[1] = x11drv_atom(_NET_WM_STATE_FULLSCREEN);
-        xev.xclient.data.l[2] = 0;
+        xev.xclient.data.l[2] = x11drv_atom(_NET_WM_STATE_ABOVE);
+        xev.xclient.data.l[3] = 0;
         wine_tsx11_lock();
-        XSendEvent(display, root_window, False, SubstructureRedirectMask | SubstructureNotifyMask, &xev);
+        XSendEvent(display, root_window, False, SubstructureNotifyMask, &xev);
         wine_tsx11_unlock();
     }
 }
diff -up cvs/hq/wine/dlls/winex11.drv/x11drv.h wine/dlls/winex11.drv/x11drv.h
--- cvs/hq/wine/dlls/winex11.drv/x11drv.h	2006-06-28 17:11:02.000000000 +0900
+++ wine/dlls/winex11.drv/x11drv.h	2006-07-03 19:38:14.000000000 +0900
@@ -570,6 +570,7 @@ enum x11drv_atoms
     XATOM__NET_WM_PID,
     XATOM__NET_WM_PING,
     XATOM__NET_WM_STATE,
+    XATOM__NET_WM_STATE_ABOVE,
     XATOM__NET_WM_STATE_FULLSCREEN,
     XATOM__NET_WM_WINDOW_TYPE,
     XATOM__NET_WM_WINDOW_TYPE_UTILITY,
diff -up cvs/hq/wine/dlls/winex11.drv/x11drv_main.c wine/dlls/winex11.drv/x11drv_main.c
--- cvs/hq/wine/dlls/winex11.drv/x11drv_main.c	2006-06-24 13:27:12.000000000 +0900
+++ wine/dlls/winex11.drv/x11drv_main.c	2006-07-03 19:38:18.000000000 +0900
@@ -132,6 +132,7 @@ static const char * const atom_names[NB_
     "_NET_WM_PID",
     "_NET_WM_PING",
     "_NET_WM_STATE",
+    "_NET_WM_STATE_ABOVE",
     "_NET_WM_STATE_FULLSCREEN",
     "_NET_WM_WINDOW_TYPE",
     "_NET_WM_WINDOW_TYPE_UTILITY",





More information about the wine-patches mailing list