Remove run-time dependencies on X11 backend with GTK3

As with Wayland, the X11 backend may not be available at run-time,
so types defined in it can't be used
This commit is contained in:
Paul Cornett
2021-03-24 11:25:01 -07:00
parent afc3aa773a
commit 0995797158
2 changed files with 8 additions and 4 deletions

View File

@@ -32,16 +32,19 @@ inline gpointer wxGtkGetIdFromWidget(GtkWidget* widget)
GdkWindow* window = gtk_widget_get_window(widget);
wxASSERT(window);
#ifdef __WXGTK3__
const char* name = g_type_name(G_TYPE_FROM_INSTANCE(window));
#endif
#ifdef GDK_WINDOWING_X11
#ifdef __WXGTK3__
if ( GDK_IS_X11_WINDOW(window) )
if (strcmp("GdkX11Window", name) == 0)
#endif
{
return (gpointer)GDK_WINDOW_XID(window);
}
#endif
#ifdef GDK_WINDOWING_WAYLAND
if ( GDK_IS_WAYLAND_WINDOW(window) )
if (strcmp("GdkWaylandWindow", name) == 0)
{
return (gpointer)gdk_wayland_window_get_wl_surface(window);
}

View File

@@ -457,8 +457,9 @@ bool wxGLCanvasEGL::CreateSurface()
}
GdkWindow *window = GTKGetDrawingWindow();
const char* name = g_type_name(G_TYPE_FROM_INSTANCE(window));
#ifdef GDK_WINDOWING_X11
if ( GDK_IS_X11_WINDOW(window) )
if (strcmp("GdkX11Window", name) == 0)
{
m_xwindow = GDK_WINDOW_XID(window);
m_surface = eglCreatePlatformWindowSurface(m_display, *m_config,
@@ -467,7 +468,7 @@ bool wxGLCanvasEGL::CreateSurface()
}
#endif
#ifdef GDK_WINDOWING_WAYLAND
if ( GDK_IS_WAYLAND_WINDOW(window) )
if (strcmp("GdkWaylandWindow", name) == 0)
{
int x, y;
gdk_window_get_origin(window, &x, &y);