From 03311abe498da34ab4dbd2402935cf641fce1431 Mon Sep 17 00:00:00 2001 From: Brooklyn Nicholson Date: Tue, 30 Jun 2026 02:06:30 -0500 Subject: [PATCH] =?UTF-8?q?fix(desktop):=20make=20=E2=8C=98K=20/=20session?= =?UTF-8?q?-switcher=20HUDs=20ignore=20titlebar=20drag=20band?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The top-center floating HUDs (command palette + session switcher) pin at top-3, overlapping the titlebar's `[-webkit-app-region:drag]` bands. Drag regions win hit-testing over the DOM regardless of z-index, so the top of each surface — the search input — swallowed clicks, leaving only a ~2px strip focusable. Add `[-webkit-app-region:no-drag]` to the shared HUD_SURFACE so the whole surface is interactive. --- apps/desktop/src/app/floating-hud.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/desktop/src/app/floating-hud.ts b/apps/desktop/src/app/floating-hud.ts index 1c499b4a08a..ef501dcc6ae 100644 --- a/apps/desktop/src/app/floating-hud.ts +++ b/apps/desktop/src/app/floating-hud.ts @@ -6,7 +6,11 @@ export const HUD_POSITION = 'fixed left-1/2 top-3 -translate-x-1/2' // Matches the app's borderless-overlay surface (dialog, keybind panel, …): // hairline `--stroke-nous` paired with the soft `--shadow-nous` float. -export const HUD_SURFACE = 'rounded-xl border border-(--stroke-nous) bg-(--ui-chat-bubble-background) shadow-nous' +// `no-drag`: these HUDs overlap the titlebar's `[-webkit-app-region:drag]` band +// (app-shell.tsx), which wins hit-testing over DOM regardless of z-index — so +// without it the top of the surface (the search input) swallows clicks. +export const HUD_SURFACE = + 'rounded-xl border border-(--stroke-nous) bg-(--ui-chat-bubble-background) shadow-nous [-webkit-app-region:no-drag]' // One row/text size for both HUDs (compact — two notches under `text-sm`). export const HUD_TEXT = 'text-xs'