diff options
| author | user <user@clank> | 2026-09-09 20:14:03 +0200 |
|---|---|---|
| committer | user <user@clank> | 2026-09-09 20:14:03 +0200 |
| commit | a1e2c1817ac8d967519cd978742f6a59591ff959 (patch) | |
| tree | eca5b858d7c60a18d261d5c64fbc3a45ffcce255 /include | |
| parent | search: a scrollback search bar on /, matches highlighted (diff) | |
| download | slosh-a1e2c1817ac8d967519cd978742f6a59591ff959.tar.gz slosh-a1e2c1817ac8d967519cd978742f6a59591ff959.tar.xz slosh-a1e2c1817ac8d967519cd978742f6a59591ff959.zip | |
pane: shift consumed by the character is consumed, tell the encoder
935fb7e9 taught the legacy decoder to read the shift out of shifted
punctuation, so / and ? could be two keys. But pane_send_key never set
the consumed mods on the re-encoded event, and libghostty's kitty path
only passes text through as text when no unconsumed modifier remains:
a kitty-protocol pane (nvim) received : as CSI 59;2u -- shift+semicolon,
no text -- and the command line never opened. :wq! was unreachable.
Mark shift consumed when the event carries text, shift is held, and the
text is not the unshifted character -- the same call a real terminal
makes. Text the shift produced goes through as text; chords whose shift
is real (shift+up, ctrl+shift+a, back-tab) keep their escapes, and a
legacy pane sees no change.
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions
