X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8166ab4343099511fbd6f013fbeb9afc87c69a25..d477aa2bb3ec93c915542185bd2fb9ef74642356:/src/unix/utilsx11.cpp?ds=sidebyside diff --git a/src/unix/utilsx11.cpp b/src/unix/utilsx11.cpp index 465f7bec90..32f4ef60e7 100644 --- a/src/unix/utilsx11.cpp +++ b/src/unix/utilsx11.cpp @@ -6,7 +6,7 @@ // Created: 25.03.02 // RCS-ID: $Id$ // Copyright: (c) wxWindows team -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #if defined(__WXX11__) || defined(__WXGTK__) || defined(__WXMOTIF__) @@ -276,7 +276,7 @@ static bool wxQueryWMspecSupport(Display *display, Window rootWnd, Atom feature) // Is the WM ICCCM supporting? XGetWindowProperty(display, rootWnd, - _NET_SUPPORTING_WM_CHECK, 0, UINT_MAX, + _NET_SUPPORTING_WM_CHECK, 0, LONG_MAX, False, XA_WINDOW, &type, &format, &nwins, &after, (unsigned char **)&wins); if ( type != XA_WINDOW || nwins <= 0 || wins[0] == None ) @@ -285,7 +285,7 @@ static bool wxQueryWMspecSupport(Display *display, Window rootWnd, Atom feature) // Query for supported features: XGetWindowProperty(display, rootWnd, - _NET_SUPPORTED, 0, UINT_MAX, + _NET_SUPPORTED, 0, LONG_MAX, False, XA_ATOM, &type, &format, &natoms, &after, (unsigned char **)&atoms); if ( type != XA_ATOM || atoms == NULL ) @@ -400,17 +400,29 @@ static void wxSetKDEFullscreen(Display *display, Window rootWnd, } // it is neccessary to unmap the window, otherwise kwin will ignore us: + XSync(display, False); + bool wasMapped = IsMapped(display, w); if (wasMapped) + { XUnmapWindow(display, w); + XSync(display, False); + } + XChangeProperty(display, w, _NET_WM_WINDOW_TYPE, XA_ATOM, 32, PropModeReplace, (unsigned char *) &data, lng); + XSync(display, False); + if (wasMapped) + { XMapRaised(display, w); + XSync(display, False); + } wxWMspecSetState(display, rootWnd, w, fullscreen ? _NET_WM_STATE_ADD : _NET_WM_STATE_REMOVE, _NET_WM_STATE_STAYS_ON_TOP); + XSync(display, False); if (!fullscreen) { @@ -423,6 +435,7 @@ static void wxSetKDEFullscreen(Display *display, Window rootWnd, XMoveResizeWindow(display, w, origRect->x, origRect->y, origRect->width, origRect->height); + XSync(display, False); } }