## 缺口 片段**右键菜单完全缺失**(剪辑器最基础手感之一)。 ## 位置 - `web/src/components/timeline/TimelineContainer.tsx`(`onPointerDown` 首行 `if (e.button!==0) return`,无 `onContextMenu`)。 - `web/src/App.tsx:40-49` 仅全局屏蔽 WebView 原生菜单,无业务菜单。 ## 如何完成 - 新增 `web/src/components/timeline/ClipContextMenu.tsx`(绝对定位浮层);`TimelineContainer` 加 `onContextMenu`→`hitTestClip`→命中弹出。 - 菜单项接已就绪的 `editActions`:Delete/Split/Link/Unlink/RippleDelete;Copy/Paste 见复制粘贴 issue;Swap Media/Save as Media/Extract Audio 见后端命令 issue。 - 上游:`Timeline/TimelineView.swift` `override func menu(for:)`(Copy/Paste、Link/Unlink、Swap Media、Save as Media、AI Edit、fade/volume 插值子菜单)。 cc @appergb
缺口
片段右键菜单完全缺失(剪辑器最基础手感之一)。
位置
web/src/components/timeline/TimelineContainer.tsx(onPointerDown首行if (e.button!==0) return,无onContextMenu)。web/src/App.tsx:40-49仅全局屏蔽 WebView 原生菜单,无业务菜单。如何完成
web/src/components/timeline/ClipContextMenu.tsx(绝对定位浮层);TimelineContainer加onContextMenu→hitTestClip→命中弹出。editActions:Delete/Split/Link/Unlink/RippleDelete;Copy/Paste 见复制粘贴 issue;Swap Media/Save as Media/Extract Audio 见后端命令 issue。Timeline/TimelineView.swiftoverride func menu(for:)(Copy/Paste、Link/Unlink、Swap Media、Save as Media、AI Edit、fade/volume 插值子菜单)。cc @appergb