Merge pull request #50 from swt2c/fix_getxwindow_gtk3_crash

Fix crash when calling GetHandle() on unrealized window with wxGTK3
This commit is contained in:
Robin Dunn
2016-05-02 21:16:16 -07:00

View File

@@ -7,9 +7,19 @@
#include <gdk/gdkx.h>
#include <gtk/gtk.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(const 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) : \