X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7f891ef1070ac4d98897e60158db1a088037c189..ffafd8a55bb0b8fb4236e4522792a6b143813609:/src/unix/utilsx11.cpp diff --git a/src/unix/utilsx11.cpp b/src/unix/utilsx11.cpp index 8f3eb5dc7d..85256f048e 100644 --- a/src/unix/utilsx11.cpp +++ b/src/unix/utilsx11.cpp @@ -6,11 +6,14 @@ // Created: 25.03.02 // RCS-ID: $Id$ // Copyright: (c) wxWindows team -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #if defined(__WXX11__) || defined(__WXGTK__) || defined(__WXMOTIF__) +// for compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + #include "wx/unix/utilsx11.h" #include "wx/iconbndl.h" #include "wx/image.h" @@ -101,8 +104,11 @@ void wxSetIconsX11( WXDisplay* display, WXWindow window, if( size > 0 ) { - wxUint32* data = new wxUint32[size]; - wxUint32* ptr = data; +// The code below is correct for 64-bit machines also. +// wxUint32* data = new wxUint32[size]; +// wxUint32* ptr = data; + unsigned long* data = new unsigned long[size]; + unsigned long* ptr = data; for( i = 0; i < max; ++i ) { @@ -400,17 +406,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 +441,7 @@ static void wxSetKDEFullscreen(Display *display, Window rootWnd, XMoveResizeWindow(display, w, origRect->x, origRect->y, origRect->width, origRect->height); + XSync(display, False); } }