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:
@@ -32,16 +32,19 @@ inline gpointer wxGtkGetIdFromWidget(GtkWidget* widget)
|
|||||||
GdkWindow* window = gtk_widget_get_window(widget);
|
GdkWindow* window = gtk_widget_get_window(widget);
|
||||||
wxASSERT(window);
|
wxASSERT(window);
|
||||||
|
|
||||||
|
#ifdef __WXGTK3__
|
||||||
|
const char* name = g_type_name(G_TYPE_FROM_INSTANCE(window));
|
||||||
|
#endif
|
||||||
#ifdef GDK_WINDOWING_X11
|
#ifdef GDK_WINDOWING_X11
|
||||||
#ifdef __WXGTK3__
|
#ifdef __WXGTK3__
|
||||||
if ( GDK_IS_X11_WINDOW(window) )
|
if (strcmp("GdkX11Window", name) == 0)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
return (gpointer)GDK_WINDOW_XID(window);
|
return (gpointer)GDK_WINDOW_XID(window);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef GDK_WINDOWING_WAYLAND
|
#ifdef GDK_WINDOWING_WAYLAND
|
||||||
if ( GDK_IS_WAYLAND_WINDOW(window) )
|
if (strcmp("GdkWaylandWindow", name) == 0)
|
||||||
{
|
{
|
||||||
return (gpointer)gdk_wayland_window_get_wl_surface(window);
|
return (gpointer)gdk_wayland_window_get_wl_surface(window);
|
||||||
}
|
}
|
||||||
|
@@ -457,8 +457,9 @@ bool wxGLCanvasEGL::CreateSurface()
|
|||||||
}
|
}
|
||||||
|
|
||||||
GdkWindow *window = GTKGetDrawingWindow();
|
GdkWindow *window = GTKGetDrawingWindow();
|
||||||
|
const char* name = g_type_name(G_TYPE_FROM_INSTANCE(window));
|
||||||
#ifdef GDK_WINDOWING_X11
|
#ifdef GDK_WINDOWING_X11
|
||||||
if ( GDK_IS_X11_WINDOW(window) )
|
if (strcmp("GdkX11Window", name) == 0)
|
||||||
{
|
{
|
||||||
m_xwindow = GDK_WINDOW_XID(window);
|
m_xwindow = GDK_WINDOW_XID(window);
|
||||||
m_surface = eglCreatePlatformWindowSurface(m_display, *m_config,
|
m_surface = eglCreatePlatformWindowSurface(m_display, *m_config,
|
||||||
@@ -467,7 +468,7 @@ bool wxGLCanvasEGL::CreateSurface()
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef GDK_WINDOWING_WAYLAND
|
#ifdef GDK_WINDOWING_WAYLAND
|
||||||
if ( GDK_IS_WAYLAND_WINDOW(window) )
|
if (strcmp("GdkWaylandWindow", name) == 0)
|
||||||
{
|
{
|
||||||
int x, y;
|
int x, y;
|
||||||
gdk_window_get_origin(window, &x, &y);
|
gdk_window_get_origin(window, &x, &y);
|
||||||
|
Reference in New Issue
Block a user