Developer forums (C::B DEVELOPMENT STRICTLY!) > Development
Force X11 compatibility mode
Miguel Gimenez:
Currently most Linux distributions are removing X11 support forcing Wayland usage.
C::B relies heavily on Aui, and currently Aui does not work correctly with Wayland. Forcing XWayland, if it is available, would make Aui work again on these systems (this is the method used by KiCAD).
Adding these lines to OnInit() should be enough:
--- Code: ---#ifdef __WXGTK__
wxSetEnv("GDK_BACKEND", "x11");
#endif
--- End code ---
Opinions?
EDIT: The change does not work, while "GDK_BACKEND=x11 ./codeblocks" works. Looks like the variable must be set using setenv() just before the App object is created, i.e., before the call to wxEntry()
Miguel Gimenez:
With this patch Aui docking works on Ubuntu 24.04/Wayland:
--- Code: ---Index: src/src/app.cpp
===================================================================
--- src/src/app.cpp (revision: 13846)
+++ src/src/app.cpp (copia de trabajo)
@@ -367,8 +367,19 @@
} // namespace
-IMPLEMENT_APP(CodeBlocksApp) // TODO: This gives a "redundant declaration" warning, though I think it's false. Dig through macro and check.
+#ifdef __WXGTK__
+wxIMPLEMENT_APP_NO_MAIN(CodeBlocksApp);
+int main(int argc, char **argv)
+{
+ setenv("GDK_BACKEND", "x11", 1);
+ wxDISABLE_DEBUG_SUPPORT();
+ return wxEntry(argc, argv);
+}
+#else
+wxIMPLEMENT_APP(CodeBlocksApp);
+#endif
+
BEGIN_EVENT_TABLE(CodeBlocksApp, wxApp)
EVT_ACTIVATE_APP(CodeBlocksApp::OnAppActivate)
EVT_TASKBAR_LEFT_DOWN(CodeBlocksApp::OnTBIconLeftDown)
--- End code ---
blauzahn:
With that patch, docking is fixed under Arch Linux Wayland as well, e.g. open-files-list dock.
Wonderful! Thank you.
Miguel Gimenez:
Thanks for testing.
Applied in r13848.
unixpro1970:
Can someone please update AUR with a new codeblocks (with all required patches)? The latest AUR codeblocks from 2025 hangs when launched on Manjaro. I am unsure what patches are needed to make it work.
https://archlinux.org/packages/extra/x86_64/codeblocks/
Navigation
[0] Message Index
[#] Next page
Go to full version