fix(terminal): handle Ctrl+C/V for copy & paste on Windows/Linux
On non-Mac platforms, let xterm.js ClipboardAddon handle Ctrl+C (copy when text is selected) and Ctrl+V (paste) instead of sending control codes to the PTY. Closes #175
This commit is contained in:
@@ -72,6 +72,11 @@ declare global {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const isMac =
|
||||||
|
typeof navigator !== "undefined" &&
|
||||||
|
(/Macintosh|Mac OS/i.test(navigator.userAgent ?? "") ||
|
||||||
|
/Mac/i.test((navigator as any).platform ?? ""));
|
||||||
|
|
||||||
const DEFAULT_TOUCH_SCROLL_LINE_HEIGHT_PX = 18;
|
const DEFAULT_TOUCH_SCROLL_LINE_HEIGHT_PX = 18;
|
||||||
const FIT_TIMEOUT_DELAYS_MS = [0, 16, 48, 120, 250, 500, 1_000, 2_000];
|
const FIT_TIMEOUT_DELAYS_MS = [0, 16, 48, 120, 250, 500, 1_000, 2_000];
|
||||||
const OUTPUT_OPERATION_TIMEOUT_MS = 5_000;
|
const OUTPUT_OPERATION_TIMEOUT_MS = 5_000;
|
||||||
@@ -280,6 +285,10 @@ export class TerminalEmulatorRuntime {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!isMac && event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
const normalizedKey = normalizeDomTerminalKey(event.key);
|
const normalizedKey = normalizeDomTerminalKey(event.key);
|
||||||
if (!normalizedKey || isTerminalModifierDomKey(event.key)) {
|
if (!normalizedKey || isTerminalModifierDomKey(event.key)) {
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user