X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2d120f8391920145647ec10e84629bc21fa9f1bb..4bc6f7a06c494917409bbb673526f090bc51d2d2:/src/motif/dcscreen.cpp?ds=sidebyside diff --git a/src/motif/dcscreen.cpp b/src/motif/dcscreen.cpp index 04c409033f..762a740101 100644 --- a/src/motif/dcscreen.cpp +++ b/src/motif/dcscreen.cpp @@ -9,20 +9,25 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "dcscreen.h" -#endif +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" +#include "wx/window.h" +#include "wx/frame.h" #include "wx/dcscreen.h" #include "wx/utils.h" +#ifdef __VMS__ +#pragma message disable nosimpint +#endif #include +#ifdef __VMS__ +#pragma message enable nosimpint +#endif -#include +#include "wx/motif/private.h" -#if !USE_SHARED_LIBRARY IMPLEMENT_DYNAMIC_CLASS(wxScreenDC, wxWindowDC) -#endif WXWindow wxScreenDC::sm_overlayWindow = 0; int wxScreenDC::sm_overlayWindowX = 0; @@ -54,11 +59,12 @@ wxScreenDC::wxScreenDC() &gcvalues); m_backgroundPixel = (int) gcvalues.background; - m_ok = TRUE; + m_ok = true; } wxScreenDC::~wxScreenDC() { + EndDrawingOnTop(); } bool wxScreenDC::StartDrawingOnTop(wxWindow* window) @@ -66,7 +72,7 @@ bool wxScreenDC::StartDrawingOnTop(wxWindow* window) wxRect rect; int x, y, width, height; window->GetPosition(& x, & y); - if (window->GetParent()) + if (window->GetParent() && !window->IsKindOf(CLASSINFO(wxFrame))) window->GetParent()->ClientToScreen(& x, & y); window->GetSize(& width, & height); rect.x = x; rect.y = y; @@ -78,7 +84,7 @@ bool wxScreenDC::StartDrawingOnTop(wxWindow* window) bool wxScreenDC::StartDrawingOnTop(wxRect* rect) { if (sm_overlayWindow) - return FALSE; + return false; Display *dpy = (Display*) wxGetDisplay(); Pixmap screenPixmap = RootWindow(dpy, DefaultScreen(dpy)); @@ -108,10 +114,10 @@ bool wxScreenDC::StartDrawingOnTop(wxRect* rect) if (sm_overlayWindow) { XMapWindow(dpy, (Window) sm_overlayWindow); - return TRUE; + return true; } else - return FALSE; + return false; } bool wxScreenDC::EndDrawingOnTop() @@ -120,8 +126,8 @@ bool wxScreenDC::EndDrawingOnTop() { XDestroyWindow((Display*) wxGetDisplay(), (Window) sm_overlayWindow); sm_overlayWindow = 0; - return TRUE; + return true; } else - return FALSE; + return false; }