]> git.saurik.com Git - wxWidgets.git/blobdiff - src/unix/utilsx11.cpp
Applied patch [ 1195797 ] Fixes to compile on Win64
[wxWidgets.git] / src / unix / utilsx11.cpp
index fec01d61631fb5bb5c7bcdbcb941803559e1417f..ec9e3cb1f68a632917007f331e0b43f4d9c4b438 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     25.03.02
 // RCS-ID:      $Id$
 // Copyright:   (c) wxWidgets team
-// Licence:     wxWidgets licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #if defined(__WXX11__) || defined(__WXGTK__) || defined(__WXMOTIF__)
@@ -29,7 +29,7 @@
 #pragma message enable nosimpint
 #endif
 
-#ifdef __WXGTK20__
+#ifdef __WXGTK__
 #include <gdk/gdk.h>
 #include <gdk/gdkx.h>
 #endif
@@ -65,12 +65,15 @@ static bool IsMapped(Display *display, Window window)
 
 // Suspends X11 errors. Used when we expect errors but they are not fatal
 // for us.
+extern "C" {
+    static int wxX11ErrorsSuspender_handler(Display*, XErrorEvent*) { return 0; }
+}
 class wxX11ErrorsSuspender
 {
 public:
     wxX11ErrorsSuspender(Display *d) : m_display(d)
     {
-        m_old = XSetErrorHandler(handler);
+        m_old = XSetErrorHandler(wxX11ErrorsSuspender_handler);
     }
     ~wxX11ErrorsSuspender()
     {
@@ -81,7 +84,6 @@ public:
 private:
     Display *m_display;
     int (*m_old)(Display*, XErrorEvent *);
-    static int handler(Display *, XErrorEvent *) { return 0; }
 };
 
 
@@ -764,10 +766,15 @@ KeySym wxCharCodeWXToX(int id)
 
 bool wxGetKeyState(wxKeyCode key)
 {
+    wxASSERT_MSG(key != WXK_LBUTTON && key != WXK_RBUTTON && key !=
+        WXK_MBUTTON, wxT("can't use wxGetKeyState() for mouse buttons"));
+
 #if defined(__WXX11__)
-    Display *pDisplay = wxApp::GetDisplay();
+    Display *pDisplay = (Display*) wxApp::GetDisplay();
 #elif defined(__WXGTK__)
     Display *pDisplay = GDK_DISPLAY();
+#elif defined(__WXMOTIF__)
+    Display *pDisplay = (Display*) (wxTheApp ? wxTheApp->GetInitialDisplay() : NULL);
 #else
 #error  Add code to get the DISPLAY for this platform
 #endif