Jinwoo Hong
9b46c3f0f2
fix(terminal): let unselected Cmd+C reach apps that own their selection ( #23597 )
...
* fix(terminal): let unselected Cmd+C reach apps that negotiated kitty keyboard
On macOS Orca swallowed an unselected Cmd+C as a no-op copy, so a full-screen
TUI like Codex, which captures the mouse and keeps its highlight out of xterm's
selection, never received its own copy chord.
- isAppOwnedCopyChord (xterm-bypass-policy) is the one rule: macOS, no xterm
selection, and non-zero kitty flags from the pane's mirror. The pane's xterm
bypass and the dashboard popout's key handler both use it.
- A selection copy stays claimed through its repeats and release, including
custom copy bindings, so kitty event reporting cannot leak them to the PTY.
- Plain shells keep sending nothing; Linux and Windows are unchanged.
- The e2e kitty helpers move to helpers/terminal-kitty-keyboard.ts so the
shortcut spec stays under the line limit.
* fix(terminal): popout copy ownership reads xterm's selection like the pane
A highlight of blank cells trims to empty text but is still a selection, so the
popout must not hand that Cmd+C to a kitty app while the pane withholds it.
* test(terminal): keep the held-copy binding test beside the copy dispatch tests
The shortcut-policy suite is at its line limit.
* test(terminal): stub a blank-cell selection without widening the preview harness type
* style(terminal): tighten the app-owned copy comment and read the popout selection after the early return
2026-09-28 15:49:22 -04:00
..
2026-06-29 22:38:29 -07:00
2026-08-30 11:45:21 -07:00
2026-08-30 11:45:21 -07:00
2026-09-05 21:38:35 -07:00
2026-08-25 15:36:51 -07:00
2026-09-22 20:14:19 -04:00
2026-09-22 20:14:19 -04:00
2026-09-22 20:14:19 -04:00
2026-08-31 19:47:27 -07:00
2026-08-31 19:47:27 -07:00
2026-08-25 15:36:51 -07:00
2026-08-31 19:47:27 -07:00
2026-09-25 22:47:33 -07:00
2026-08-05 12:57:02 -07:00
2026-08-06 21:18:52 -07:00
2026-09-25 23:13:31 -07:00
2026-08-17 23:28:38 -07:00
2026-09-27 16:17:06 -07:00
2026-07-27 15:22:55 -07:00
2026-06-29 22:38:29 -07:00
2026-09-06 10:37:04 -07:00
2026-09-06 14:39:25 -04:00
2026-08-13 16:23:22 -07:00
2026-09-19 01:29:16 -07:00
2026-09-27 17:57:21 -07:00
2026-09-24 10:54:43 -07:00
2026-09-24 10:54:43 -07:00
2026-08-30 20:28:35 -07:00
2026-09-05 15:08:22 -07:00
2026-09-05 15:08:22 -07:00
2026-08-05 12:57:02 -07:00
2026-08-05 12:57:02 -07:00
2026-09-25 22:47:33 -07:00
2026-09-25 22:47:33 -07:00
2026-09-25 22:47:33 -07:00
2026-09-25 22:47:33 -07:00
2026-09-25 22:47:33 -07:00
2026-09-05 13:53:27 -07:00
2026-08-23 09:45:52 -07:00
2026-08-23 09:45:52 -07:00
2026-08-23 09:45:52 -07:00
2026-08-23 09:45:52 -07:00
2026-04-19 12:09:32 -07:00
2026-09-05 19:57:29 -07:00
2026-09-05 19:57:29 -07:00
2026-08-15 01:02:06 -07:00
2026-08-15 01:02:06 -07:00
2026-09-06 02:26:00 -07:00
2026-08-31 19:34:55 -07:00
2026-08-25 15:36:51 -07:00
2026-08-25 15:36:51 -07:00
2026-09-24 10:54:43 -07:00
2026-08-31 18:45:52 -07:00
2026-08-25 15:36:51 -07:00
2026-08-27 16:59:38 -07:00
2026-09-10 17:42:50 -07:00
2026-08-27 16:59:38 -07:00
2026-08-27 16:59:38 -07:00
2026-08-25 15:36:51 -07:00
2026-07-22 18:25:05 -07:00
2026-07-22 18:25:05 -07:00
2026-09-06 09:05:08 -07:00
2026-07-28 20:51:14 -07:00
2026-07-22 18:25:05 -07:00
2026-07-22 18:25:05 -07:00
2026-07-22 18:25:05 -07:00
2026-07-22 18:25:05 -07:00
2026-09-06 11:25:52 -07:00
2026-09-25 22:47:33 -07:00
2026-09-06 14:34:03 -04:00
2026-09-06 14:34:03 -04:00
2026-08-25 15:36:51 -07:00
2026-08-30 03:07:20 -04:00
2026-09-06 09:51:31 -07:00
2026-09-06 09:51:31 -07:00
2026-09-05 18:41:24 -07:00
2026-09-05 18:41:24 -07:00
2026-09-17 21:21:14 -07:00
2026-09-24 10:54:43 -07:00
2026-08-28 00:27:01 -04:00
2026-08-18 13:32:48 -07:00
2026-07-31 00:22:53 -07:00
2026-09-16 15:27:35 -07:00
2026-07-30 20:58:11 -07:00
2026-08-10 14:32:08 -07:00
2026-08-10 14:32:08 -07:00
2026-08-31 08:17:40 -07:00
2026-08-10 14:32:08 -07:00
2026-07-29 20:04:55 -07:00
2026-09-24 10:54:43 -07:00
2026-09-25 20:50:24 -07:00
2026-09-25 22:47:33 -07:00
2026-09-25 22:47:33 -07:00
2026-07-28 12:33:17 -07:00
2026-08-13 22:48:24 -07:00
2026-09-11 11:43:48 -07:00
2026-08-03 02:18:05 -07:00
2026-08-13 12:38:08 -07:00
2026-09-05 16:43:41 -07:00
2026-09-05 16:43:41 -07:00
2026-08-25 15:36:51 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-08-30 11:45:21 -07:00
2026-07-17 17:18:36 -07:00
2026-07-20 03:04:28 -04:00
2026-08-22 21:40:47 -07:00
2026-09-05 17:39:02 -07:00
2026-04-19 12:09:32 -07:00
2026-09-09 10:42:18 -07:00
2026-09-06 19:14:42 -07:00
2026-09-11 01:45:57 -07:00
2026-09-12 01:19:07 -07:00
2026-09-05 16:45:48 -07:00
2026-09-06 11:25:52 -07:00
2026-09-05 21:46:50 -07:00
2026-07-31 00:36:09 -07:00
2026-07-31 00:36:09 -07:00
2026-07-31 00:36:09 -07:00
2026-07-31 00:36:09 -07:00
2026-09-25 22:47:33 -07:00
2026-09-05 15:08:22 -07:00
2026-08-25 15:36:51 -07:00
2026-09-24 10:54:43 -07:00
2026-08-16 13:45:54 -07:00
2026-09-05 23:44:45 -07:00
2026-09-24 10:54:43 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-09-18 23:25:52 -07:00
2026-08-27 16:29:05 -07:00
2026-09-24 10:54:43 -07:00
2026-08-03 02:18:05 -07:00
2026-09-18 16:32:49 -07:00
2026-07-17 17:18:36 -07:00
2026-09-05 23:44:45 -07:00
2026-09-28 15:49:22 -04:00
2026-08-15 00:54:20 -07:00
2026-08-30 03:07:20 -04:00
2026-08-15 00:54:20 -07:00
2026-08-27 16:29:05 -07:00
2026-08-15 00:54:20 -07:00
2026-06-07 17:10:45 -07:00
2026-08-31 18:45:52 -07:00
2026-09-25 22:47:33 -07:00
2026-08-13 10:26:20 -07:00
2026-08-17 16:40:01 -07:00
2026-05-15 23:52:37 -07:00
2026-09-24 10:54:43 -07:00
2026-08-03 02:21:56 -07:00
2026-08-13 22:48:24 -07:00
2026-09-06 03:20:06 -07:00