diff --git a/windows/tauri/src/features/window/components/title-bar/title-project-menu.tsx b/windows/tauri/src/features/window/components/title-bar/title-project-menu.tsx index 1e7cebdd1..b26b8fbce 100644 --- a/windows/tauri/src/features/window/components/title-bar/title-project-menu.tsx +++ b/windows/tauri/src/features/window/components/title-bar/title-project-menu.tsx @@ -1,5 +1,5 @@ import { convertFileSrc } from "@/platform/tauri-core"; -import { useMemo, useState, type ReactNode } from "react"; +import { useLayoutEffect, useMemo, useState, type ReactNode } from "react"; import { useFileSystemStore } from "@/features/file-system/stores/file-system.store"; import { useRecentFoldersStore } from "@/features/file-system/stores/recent-folders.store"; import { useTranslation } from "@/i18n/locale-provider"; @@ -27,6 +27,7 @@ import { DropdownMenuTrigger, } from "@/ui/dropdown"; import { Button } from "@/ui/button"; +import { bindScrollContainerWheel } from "@/ui/scroll-container-wheel"; import { cn } from "@/utils/cn"; interface TitleProjectMenuProps { @@ -115,11 +116,17 @@ export function TitleProjectMenu({ onOpenProjectPicker }: TitleProjectMenuProps) const isSwitchingProject = useFileSystemStore((state) => state.isSwitchingProject); const projectLabel = activeProject?.name ?? t("projectOpen.title"); const [isOpen, setIsOpen] = useState(false); + const [menuNode, setMenuNode] = useState(null); const projects = useMemo( () => getTitleProjectMenuProjects(projectTabs, recentFolders), [projectTabs, recentFolders], ); + useLayoutEffect(() => { + if (!menuNode) return; + return bindScrollContainerWheel(menuNode); + }, [menuNode]); + const closeAndRun = (action: () => void) => { setIsOpen(false); action(); @@ -154,6 +161,7 @@ export function TitleProjectMenu({ onOpenProjectPicker }: TitleProjectMenuProps)