| author | |
| committer | |
| log | b0de3857775b7d1407372cde031326e15a9d4119 |
| tree | b3e748f84ba0621ae872d24cc2ebb50ebdb20069 |
| parent | c7b14a8666dc44ee426f8d139e0493af9fe4b6db |
| signature | Signed by PGP key B5690EEEBB952194 |
2 files changed, 21 insertions(+), 1 deletions(-)
apps/web/src/terminal/ghostty/surface.test.ts+16| ... | @@ -253,6 +253,22 @@ describe("isTerminalPasteShortcut", () => { | ... | @@ -253,6 +253,22 @@ describe("isTerminalPasteShortcut", () => { |
| 253 | true, | 253 | true, |
| 254 | ); | 254 | ); |
| 255 | }); | 255 | }); |
| 256 | |||
| 257 | it("supports the conventional Shift+Insert paste shortcut", () => { | ||
| 258 | expect(isTerminalPasteShortcut(event({ key: "Insert", shiftKey: true }), "Linux x86_64")).toBe( | ||
| 259 | true, | ||
| 260 | ); | ||
| 261 | expect(isTerminalPasteShortcut(event({ key: "Insert" }), "Linux x86_64")).toBe(false); | ||
| 262 | expect( | ||
| 263 | isTerminalPasteShortcut( | ||
| 264 | event({ key: "Insert", ctrlKey: true, shiftKey: true }), | ||
| 265 | "Linux x86_64", | ||
| 266 | ), | ||
| 267 | ).toBe(false); | ||
| 268 | expect(isTerminalPasteShortcut(event({ key: "Insert", shiftKey: true }), "MacIntel")).toBe( | ||
| 269 | false, | ||
| 270 | ); | ||
| 271 | }); | ||
| 256 | }); | 272 | }); |
| 257 | 273 | ||
| 258 | describe("isTerminalCompositionCommitInput", () => { | 274 | describe("isTerminalCompositionCommitInput", () => { |
apps/web/src/terminal/ghostty/surface.ts+5-1| ... | @@ -340,7 +340,11 @@ export function isTerminalPasteShortcut( | ... | @@ -340,7 +340,11 @@ export function isTerminalPasteShortcut( |
| 340 | event: Pick<KeyboardEvent, "ctrlKey" | "key" | "metaKey" | "shiftKey">, | 340 | event: Pick<KeyboardEvent, "ctrlKey" | "key" | "metaKey" | "shiftKey">, |
| 341 | platform = navigator.platform, | 341 | platform = navigator.platform, |
| 342 | ) { | 342 | ) { |
| 343 | if (event.key.toLowerCase() !== "v") return false; | 343 | const key = event.key.toLowerCase(); |
| 344 | if (key === "insert" && !isMacPlatform(platform)) { | ||
| 345 | return event.shiftKey && !event.ctrlKey && !event.metaKey; | ||
| 346 | } | ||
| 347 | if (key !== "v") return false; | ||
| 344 | return isMacPlatform(platform) ? event.metaKey : event.ctrlKey && event.shiftKey; | 348 | return isMacPlatform(platform) ? event.metaKey : event.ctrlKey && event.shiftKey; |
| 345 | } | 349 | } |
| 346 | 350 |