Force X11 if wx GL library is loaded
authorOlly Betts <olly@survex.com>
Sat, 18 Jul 2026 23:00:40 +0000 (19:00 -0400)
committerScott Talbert <swt@techie.net>
Sat, 18 Jul 2026 23:00:40 +0000 (19:00 -0400)
Bug: https://trac.wxwidgets.org/ticket/17702
Bug-Debian: https://bugs.debian.org/900678
Forwarded: not-needed
Last-Update: 2022-11-28

Gbp-Pq: Name force-x11-for-wxgl.patch

src/gtk/glcanvas.cpp

index b3251cdee941e0894ef671d4c2ffef9c971bfb4b..f93ab98018ba8be4a076a0041900a6212797b0fb 100644 (file)
 #include "wx/gtk/private/wrapgdk.h"
 #include "wx/gtk/private/backend.h"
 
+#if GTK_CHECK_VERSION(3,10,0)
+// wxGTK's wxGLCanvas requires X11 currently, so tell GDK that so under
+// Wayland the app is still run using X11.  We put this here so it's
+// only run when the wx GL library is loaded (in a monolithic build this
+// will always be active if wx's GL support is enabled).
+struct ForceX11 {
+    ForceX11() { gdk_set_allowed_backends("x11"); }
+};
+static ForceX11 forcex11;
+#endif
+
 #ifdef __WXGTK3__
 extern "C" {
 static gboolean draw(GtkWidget* widget, cairo_t* cr, wxGLCanvas* win)