From 5d067b1f8b77af04de6f9f2165fb734fe64f49df Mon Sep 17 00:00:00 2001 From: Psychotoxical Date: Thu, 9 Apr 2026 13:23:23 +0200 Subject: [PATCH] fix(app): hide resize grips in native fullscreen on all platforms Previously onResized only tracked fullscreen on Linux. Now all platforms set isWindowFullscreen, and an initial check on mount catches windows that start maximized/fullscreened. CSS: .app-shell[data-fullscreen] .resizer { display: none } added in layout.css (shipped with updater commit). Co-Authored-By: Claude Sonnet 4.6 --- src/App.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/App.tsx b/src/App.tsx index 388d6a76..427b5e9c 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -88,9 +88,13 @@ function AppShell() { }, []); useEffect(() => { - if (!IS_LINUX) return; const win = getCurrentWindow(); + // Check initial state (e.g. app launched maximised / already fullscreen). + win.isFullscreen().then(setIsWindowFullscreen).catch(() => {}); let unlisten: (() => void) | undefined; + // onResized fires on every size change, including fullscreen enter/exit on + // all platforms. We re-query isFullscreen() rather than inferring from + // the size so the flag is always accurate regardless of platform quirks. win.onResized(() => { win.isFullscreen().then(setIsWindowFullscreen).catch(() => {}); }).then(u => { unlisten = u; }); @@ -299,6 +303,7 @@ function AppShell() { data-mobile={isMobile || undefined} data-mobile-player={isMobilePlayer || undefined} data-titlebar={(IS_LINUX && useCustomTitlebar && !isWindowFullscreen && !isTilingWm) || undefined} + data-fullscreen={isWindowFullscreen || undefined} style={{ '--sidebar-width': isMobile ? '0px' : (isSidebarCollapsed ? '72px' : 'clamp(200px, 15vw, 220px)'), '--queue-width': isMobile ? '0px' : (isQueueVisible ? `${queueWidth}px` : '0px')