From 4e70ecbed15b98bf3448d5ced4ce0c991d1e03d9 Mon Sep 17 00:00:00 2001 From: Mucheen <1528136628@qq.com> Date: Thu, 20 Aug 2026 23:27:07 +0800 Subject: [PATCH] =?UTF-8?q?fix(windows):=20=E4=BF=AE=E5=A4=8D=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E8=8F=9C=E5=8D=95=E6=BB=9A=E8=BD=AE=E6=BB=9A=E5=8A=A8?= =?UTF-8?q?=E8=BF=9F=E7=BC=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../window/components/title-bar/title-project-menu.tsx | 10 +++++++++- windows/tauri/src/ui/scroll-container-wheel.ts | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) 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)