26 lines
1.2 KiB
Diff
26 lines
1.2 KiB
Diff
diff -up wxPython-src-3.0.2.0/wxPython/src/helpers.cpp.getxwindowcrash wxPython-src-3.0.2.0/wxPython/src/helpers.cpp
|
|
--- wxPython-src-3.0.2.0/wxPython/src/helpers.cpp.getxwindowcrash 2014-10-13 18:37:52.000000000 -0400
|
|
+++ wxPython-src-3.0.2.0/wxPython/src/helpers.cpp 2015-01-03 22:05:35.936010783 -0500
|
|
@@ -29,9 +29,19 @@
|
|
#include <gtk/gtk.h>
|
|
#include <gdk/gdkx.h>
|
|
#ifdef __WXGTK3__
|
|
-#define GetXWindow(wxwin) (wxwin)->m_wxwindow ? \
|
|
- GDK_WINDOW_XID(gtk_widget_get_window((wxwin)->m_wxwindow)) : \
|
|
- GDK_WINDOW_XID(gtk_widget_get_window((wxwin)->m_widget))
|
|
+// Unlike GDK_WINDOW_XWINDOW, GDK_WINDOW_XID can't handle a NULL, so check 1st
|
|
+static XID GetXWindow(wxWindow* wxwin) {
|
|
+ if ((wxwin)->m_wxwindow) {
|
|
+ if (gtk_widget_get_window((wxwin)->m_wxwindow))
|
|
+ return GDK_WINDOW_XID(gtk_widget_get_window((wxwin)->m_wxwindow));
|
|
+ return 0;
|
|
+ }
|
|
+ else {
|
|
+ if (gtk_widget_get_window((wxwin)->m_widget))
|
|
+ return GDK_WINDOW_XID(gtk_widget_get_window((wxwin)->m_widget));
|
|
+ return 0;
|
|
+ }
|
|
+}
|
|
#else
|
|
#define GetXWindow(wxwin) (wxwin)->m_wxwindow ? \
|
|
GDK_WINDOW_XWINDOW((wxwin)->m_wxwindow->window) : \
|