Add functions for determining if GDK3 backend is X11 or Wayland

This commit is contained in:
Paul Cornett
2022-02-10 10:15:08 -08:00
parent eaa769a73a
commit 94868c6f41
12 changed files with 73 additions and 34 deletions

View File

@@ -16,6 +16,7 @@
#ifdef GDK_WINDOWING_WAYLAND
#include <gdk/gdkwayland.h>
#endif
#include "wx/gtk/private/backend.h"
//-----------------------------------------------------------------------------
// "wxGtkGetIdFromWidget" from widget
@@ -32,19 +33,16 @@ 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 (strcmp("GdkX11Window", name) == 0)
if (wxGTKImpl::IsX11(window))
#endif
{
return (gpointer)GDK_WINDOW_XID(window);
}
#endif
#ifdef GDK_WINDOWING_WAYLAND
if (strcmp("GdkWaylandWindow", name) == 0)
if (wxGTKImpl::IsWayland(window))
{
return (gpointer)gdk_wayland_window_get_wl_surface(window);
}