mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2026-01-08 04:50:07 +01:00
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:
@@ -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) : \
|
||||
|
||||
Reference in New Issue
Block a user