diff --git a/desktop/src/app/AppShell.tsx b/desktop/src/app/AppShell.tsx index d4932072a0..45315fb0dd 100644 --- a/desktop/src/app/AppShell.tsx +++ b/desktop/src/app/AppShell.tsx @@ -799,7 +799,7 @@ export function AppShell() { className="isolate min-h-0 min-w-0 overflow-hidden bg-sidebar" style={chromeCssVarDefaults} > -
+
diff --git a/desktop/src/app/AppTopChrome.tsx b/desktop/src/app/AppTopChrome.tsx index 974fa73a89..3b725e8728 100644 --- a/desktop/src/app/AppTopChrome.tsx +++ b/desktop/src/app/AppTopChrome.tsx @@ -1,3 +1,4 @@ +import * as React from "react"; import { ChevronLeft, ChevronRight, @@ -22,6 +23,10 @@ type AppTopChromeProps = { const TOP_CHROME_ICON_BUTTON_CLASS = "h-7 w-7 rounded-[4px] text-sidebar-foreground/65 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground [&_svg]:size-4"; +function preventTopChromeWheel(event: WheelEvent) { + event.preventDefault(); +} + function TopChromeSidebarTrigger() { const sidebar = useOptionalSidebar(); @@ -50,6 +55,7 @@ export function AppTopChrome({ onGoBack, onGoForward, }: AppTopChromeProps) { + const topChromeRef = React.useRef(null); const isFullscreen = useIsFullscreen(); // On macOS the traffic-light buttons overlay the chrome (see // `trafficLightPosition` in `tauri.conf.json`), so the nav row clears their @@ -60,14 +66,29 @@ export function AppTopChrome({ const navRowAlignmentClass = isMacPlatform() && !isFullscreen ? "translate-y-[3px]" : null; + React.useEffect(() => { + const topChrome = topChromeRef.current; + if (!topChrome) { + return; + } + + const options = { capture: true, passive: false }; + topChrome.addEventListener("wheel", preventTopChromeWheel, options); + return () => { + topChrome.removeEventListener("wheel", preventTopChromeWheel, options); + }; + }, []); + return (
diff --git a/desktop/src/features/channels/ui/AgentSessionThreadPanel.tsx b/desktop/src/features/channels/ui/AgentSessionThreadPanel.tsx index ab9712811f..9e202f7a26 100644 --- a/desktop/src/features/channels/ui/AgentSessionThreadPanel.tsx +++ b/desktop/src/features/channels/ui/AgentSessionThreadPanel.tsx @@ -20,7 +20,7 @@ import { Button } from "@/shared/ui/button"; import type { UserProfileLookup } from "@/features/profile/lib/identity"; import { OverlayPanelBackdrop, - PANEL_BASE_CLASS, + PANEL_ENTER_BASE_CLASS, PANEL_OVERLAY_CLASS, PANEL_SINGLE_COLUMN_HEADER_LAYER_CLASS, } from "@/shared/ui/OverlayPanelBackdrop"; @@ -179,7 +179,7 @@ export function AgentSessionThreadPanel({ {isFloatingOverlay && }