diff --git a/ui-tui/packages/hermes-ink/src/ink/components/App.tsx b/ui-tui/packages/hermes-ink/src/ink/components/App.tsx index 3a0381a729..7805b4f902 100644 --- a/ui-tui/packages/hermes-ink/src/ink/components/App.tsx +++ b/ui-tui/packages/hermes-ink/src/ink/components/App.tsx @@ -616,6 +616,7 @@ export function handleMouseEvent(app: App, m: ParsedMouse): void { if (baseButton !== 0) { // Non-left press breaks the multi-click chain. app.clickCount = 0 + app.props.onMouseDownAt(col, row, baseButton) return } diff --git a/ui-tui/src/components/textInput.tsx b/ui-tui/src/components/textInput.tsx index d3529df31c..34ae5b7980 100644 --- a/ui-tui/src/components/textInput.tsx +++ b/ui-tui/src/components/textInput.tsx @@ -713,6 +713,15 @@ export function TextInput({ setCur(next) curRef.current = next }} + onMouseDown={(e: { button: number }) => { + // Right-click to paste: route through the same hotkey path as + // Alt+V so the composer's clipboard RPC (text or image) handles it. + if (!focus || e.button !== 2) { + return + } + + emitPaste({ cursor: curRef.current, hotkey: true, text: '', value: vRef.current }) + }} ref={boxRef} > {rendered}