From 3122c3331001304acd6eb2460c8ee1ea3e8964dc Mon Sep 17 00:00:00 2001 From: filtered <176114999+webfiltered@users.noreply.github.com> Date: Sat, 11 Jan 2025 05:30:11 +1100 Subject: [PATCH] Allow Ctrl + C to send interrupt in terminal (#2221) --- src/hooks/bottomPanelTabs/useTerminal.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/hooks/bottomPanelTabs/useTerminal.ts b/src/hooks/bottomPanelTabs/useTerminal.ts index beb77c98c..7040c6e4a 100644 --- a/src/hooks/bottomPanelTabs/useTerminal.ts +++ b/src/hooks/bottomPanelTabs/useTerminal.ts @@ -14,11 +14,14 @@ export function useTerminal(element: Ref) { terminal.loadAddon(fitAddon) terminal.attachCustomKeyEventHandler((event) => { - if (event.type === 'keydown' && (event.ctrlKey || event.metaKey)) { - if (event.key === 'c' || event.key === 'v') { - // Allow default browser copy/paste handling - return false - } + // Allow default browser copy/paste handling + if ( + event.type === 'keydown' && + (event.ctrlKey || event.metaKey) && + ((event.key === 'c' && terminal.hasSelection()) || event.key === 'v') + ) { + // TODO: Deselect text after copy/paste; use IPC. + return false } return true })