diff --git a/packages/opencode/src/cli/cmd/tui/app.tsx b/packages/opencode/src/cli/cmd/tui/app.tsx index ec048f86b2..93d1fc19ae 100644 --- a/packages/opencode/src/cli/cmd/tui/app.tsx +++ b/packages/opencode/src/cli/cmd/tui/app.tsx @@ -299,7 +299,8 @@ function App(props: { onSnapshot?: () => Promise }) { useKeyboard((evt) => { if (!Flag.OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT) return - if (!renderer.getSelection()) return + const sel = renderer.getSelection() + if (!sel) return // Windows Terminal-like behavior: // - Ctrl+C copies and dismisses selection @@ -323,6 +324,11 @@ function App(props: { onSnapshot?: () => Promise }) { return } + const focus = renderer.currentFocusedRenderable + if (focus?.hasSelection() && sel.selectedRenderables.includes(focus)) { + return + } + renderer.clearSelection() })