client/X11: fix post fullscreen repositioning
authorNorbert Federa <norbert.federa@thincast.com>
Wed, 4 Nov 2015 16:58:21 +0000 (17:58 +0100)
committerNorbert Federa <norbert.federa@thincast.com>
Wed, 4 Nov 2015 16:58:21 +0000 (17:58 +0100)
client/X11/xf_window.c

index db8bd25..9e7ed6e 100644 (file)
@@ -200,12 +200,22 @@ void xf_SetWindowFullscreen(xfContext* xfc, xfWindow* window, BOOL fullscreen)
 
        xf_ResizeDesktopWindow(xfc, window, width, height);
 
-       XMoveWindow(xfc->display, window->handle, startX, startY);
+       if (fullscreen)
+       {
+               /* enter full screen: move the window before adding NET_WM_STATE_FULLSCREEN */
+               XMoveWindow(xfc->display, window->handle, startX, startY);
+       }
 
        /* Set the fullscreen state */
        xf_SendClientEvent(xfc, window->handle, xfc->_NET_WM_STATE, 4,
                                fullscreen ? _NET_WM_STATE_ADD : _NET_WM_STATE_REMOVE,
                                xfc->_NET_WM_STATE_FULLSCREEN, 0, 0);
+
+       if (!fullscreen)
+       {
+               /* leave full screen: move the window after removing NET_WM_STATE_FULLSCREEN */
+               XMoveWindow(xfc->display, window->handle, startX, startY);
+       }
 }
 
 /* http://tronche.com/gui/x/xlib/window-information/XGetWindowProperty.html */