From 56f1f05f1255b0d938c44b2caf5d10e4139ce57b Mon Sep 17 00:00:00 2001 From: SoftFever Date: Tue, 3 Feb 2026 14:47:08 +0800 Subject: [PATCH] Fix Setup Wizard stuck on "Loading..." on Wayland When running under XWayland (Wayland sessions with GDK_BACKEND=x11), WebKit2GTK's compositing mode can fail silently, causing the Setup Wizard WebView to freeze or render blank. This leaves users stuck on the "Loading......" screen indefinitely. Changes: - Set WEBKIT_DISABLE_COMPOSITING_MODE=1 to force software rendering, matching the fix used by BambuStudio - Enable the 20-second timeout fallback in load.js so the wizard proceeds even if the C++ -> JavaScript signal fails --- resources/web/guide/0/load.js | 3 ++- src/OrcaSlicer.cpp | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/resources/web/guide/0/load.js b/resources/web/guide/0/load.js index 424c9ebdb3..d8c0880258 100644 --- a/resources/web/guide/0/load.js +++ b/resources/web/guide/0/load.js @@ -7,7 +7,8 @@ function OnInit() TargetPage=GetQueryString("target"); - //setTimeout("JumpToTarget()",20*1000); + // Fallback timeout in case the C++ -> JS signal fails (e.g., WebKit issues) + setTimeout("JumpToTarget()",20*1000); } function HandleStudio( pVal ) diff --git a/src/OrcaSlicer.cpp b/src/OrcaSlicer.cpp index 713589201a..a3ab6450d8 100644 --- a/src/OrcaSlicer.cpp +++ b/src/OrcaSlicer.cpp @@ -1186,6 +1186,11 @@ int CLI::run(int argc, char **argv) // instruct the window manager to fall back to X server mode. ::setenv("GDK_BACKEND", "x11", /* replace */ true); + // WebKit2GTK's compositing mode can fail under XWayland, causing WebViews + // (like the Setup Wizard) to render blank or freeze. Disabling compositing + // mode forces software rendering, which works reliably on all backends. + ::setenv("WEBKIT_DISABLE_COMPOSITING_MODE", "1", /* replace */ false); + // Also on Linux, we need to tell Xlib that we will be using threads, // lest we crash when we fire up GStreamer. XInitThreads();