From 7603b739cbe2a91ff844f7bf994e5d8b49bce132 Mon Sep 17 00:00:00 2001 From: Alex Blank Date: Wed, 22 Jul 2026 14:25:20 +0200 Subject: [PATCH] fix(terminal): prioritize selected copy menu Handle selected-output context menus during capture so xterm and the browser cannot open a competing menu. --- apps/web/src/components/features/terminal/terminal.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/web/src/components/features/terminal/terminal.tsx b/apps/web/src/components/features/terminal/terminal.tsx index 3006733..7ff8b57 100644 --- a/apps/web/src/components/features/terminal/terminal.tsx +++ b/apps/web/src/components/features/terminal/terminal.tsx @@ -512,7 +512,7 @@ export const TerminalComponent = React.forwardRef( pasteTextRef.current(text); }; container.addEventListener("copy", handleBrowserCopy, true); - container.addEventListener("contextmenu", handleTerminalContextMenu); + container.addEventListener("contextmenu", handleTerminalContextMenu, true); container.addEventListener("paste", handleBrowserPaste, true); // Mobile touch scroll. @@ -761,7 +761,11 @@ export const TerminalComponent = React.forwardRef( ); if (touchCleanup) touchCleanup(); container.removeEventListener("copy", handleBrowserCopy, true); - container.removeEventListener("contextmenu", handleTerminalContextMenu); + container.removeEventListener( + "contextmenu", + handleTerminalContextMenu, + true, + ); container.removeEventListener("paste", handleBrowserPaste, true); pasteTextRef.current = () => {}; bracketedPasteEnabledRef.current = false;