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