Fix crash when calling GetHandle() on unrealized window with wxGTK3

Unlike GDK_WINDOW_XWINDOW(), GDK_WINDOW_XID() seems unable to handle NULLs,
so check for a NULL first.  This is similar to a patch I submitted for Classic:
http://trac.wxwidgets.org/ticket/16765
This commit is contained in:
Scott Talbert
2016-03-12 13:04:15 -05:00
parent aab2833c76
commit 69af9e3fb0

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) : \