X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0cbc5287be2ff31581757553db319475ff6f515b..655c20fcd5a554a986b93651d8b0bec2afde8573:/src/x11/window.cpp diff --git a/src/x11/window.cpp b/src/x11/window.cpp index b106def7b6..f10becfa7f 100644 --- a/src/x11/window.cpp +++ b/src/x11/window.cpp @@ -45,10 +45,10 @@ #include "wx/listbox.h" #include "wx/scrolwin.h" #include "wx/layout.h" + #include "wx/menuitem.h" + #include "wx/module.h" #endif -#include "wx/module.h" -#include "wx/menuitem.h" #include "wx/fontutil.h" #include "wx/univ/renderer.h" @@ -357,10 +357,13 @@ wxWindowX11::~wxWindowX11() } // Destroy the window - Window xwindow = (Window) m_mainWindow; - wxDeleteWindowFromTable( xwindow ); - XDestroyWindow( wxGlobalDisplay(), xwindow ); - m_mainWindow = NULL; + if ( m_mainWindow ) + { + Window xwindow = (Window) m_mainWindow; + wxDeleteWindowFromTable( xwindow ); + XDestroyWindow( wxGlobalDisplay(), xwindow ); + m_mainWindow = NULL; + } } // --------------------------------------------------------------------------- @@ -1673,8 +1676,8 @@ wxMouseState wxGetMouseState() ms.SetControlDown(mask & ControlMask); ms.SetShiftDown(mask & ShiftMask); - ms.SetAltDown(mask & Mod1Mask); - ms.SetMetaDown(mask & Mod2Mask); + ms.SetAltDown(mask & Mod3Mask); + ms.SetMetaDown(mask & Mod1Mask); return ms; } @@ -1694,8 +1697,14 @@ int wxNoOptimize::ms_count = 0; class wxWinModule : public wxModule { public: - bool OnInit(); - void OnExit(); + wxWinModule() + { + // we must be cleaned up before the display is closed + AddDependency(wxClassInfo::FindClass(_T("wxX11DisplayModule"))); + } + + virtual bool OnInit(); + virtual void OnExit(); private: DECLARE_DYNAMIC_CLASS(wxWinModule)