From 384eb4eb881bae62ce4f1ecba74ab6e742268e77 Mon Sep 17 00:00:00 2001 From: Etienne Lescot Date: Mon, 20 Jul 2026 23:34:46 +0200 Subject: [PATCH] fix(launch): use native window drag for HUD grip on Linux BrowserWindow.setPosition(), which the grip's pointer-capture drag relies on, is a no-op on Wayland compositors -- clients can't reposition their own top-level window outside an OS-initiated interactive move. Fall back to -webkit-app-region: drag there, same mechanism the HUD bar's border already uses successfully. Fixes #140 --- src/components/launch/LaunchWindow.tsx | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/components/launch/LaunchWindow.tsx b/src/components/launch/LaunchWindow.tsx index 3350bb6a8..bb9b934df 100644 --- a/src/components/launch/LaunchWindow.tsx +++ b/src/components/launch/LaunchWindow.tsx @@ -924,14 +924,22 @@ export function LaunchWindow() { } }} > - {/* Drag handle */} + {/* Drag handle. On Linux (notably Wayland), BrowserWindow.setPosition() used by + the pointer-capture drag below is a platform no-op -- compositors don't let + clients reposition themselves outside an OS-initiated interactive move. Fall + back to native `-webkit-app-region: drag` there, same as the HUD bar's border, + which already goes through the OS's own move gesture and works. */}
{getIcon("drag", "text-white/30")}