]> git.saurik.com Git - wxWidgets.git/blobdiff - src/x11/window.cpp
Hack to support iso8859 and other wrongly formated
[wxWidgets.git] / src / x11 / window.cpp
index b106def7b6c6cf0eb53c6530288aef9f47379f37..f10becfa7f72e258db529b28f37e8cf813dc7ac9 100644 (file)
     #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)