435 Commits

Author SHA1 Message Date
Mitchell Hashimoto
910c8cb04a terminal: another enum in a packed struct needs backing int 2024-04-17 20:50:50 -07:00
Mitchell Hashimoto
9ea78f981e terminal: index (LF) that scrolls scroll region preserves SGR
Fixes #1676

The comment in the diff explains. This is a regression that was not unit
tested properly in the old implementation prior to the paged-terminal
merge.
2024-04-13 21:31:41 -07:00
Mitchell Hashimoto
eb2a2e3931 fmt 2024-04-02 08:38:51 -07:00
Qwerasd
51d3c2cf35 fix(kitty_graphics): set dirty state on various scroll operations 2024-03-31 21:49:28 -04:00
Qwerasd
925c7e86a2 fix(terminal): insert/deleteLines boundary cond.s
Introduced a helper function for correctly handling boundary conditions
in insertLines and deleteLines. Also adds a whole host of tests for said
conditions in deleteLines, tests not duplicated for insertLines because
they both use the same helper function.
2024-03-29 16:29:27 -04:00
Qwerasd
20ab4ec01f fix(terminal): correct wrap logic in insert/deleteLines
Appropriately handles clearing spacer heads if shifted lines include rightmost column, and centralizes clearing of row wrap state for full width scrolling regions.
2024-03-29 13:12:52 -04:00
Qwerasd
e55f2daf90 perf(terminal): clear unprotected cells in spans
Previous behavior of clearing one at a time hit a page integrity assertion after clearing a wide character but not its tail. This fixes that and should also be - in theory - significantly more performant as well by identifying spans of unprotected cells and clearing them in bulk.
2024-03-29 13:08:38 -04:00
Mitchell Hashimoto
dce96847a9 terminal: test eraseRowBounded, fix off by ones 2024-03-27 20:23:45 -07:00
Qwerasd
492e147e26 terminal: clean up some code and comments 2024-03-26 12:07:35 -06:00
Qwerasd
2274b8a912 fix(terminal): don't reset x when indexing in scroll region 2024-03-26 12:07:35 -06:00
Qwerasd
aadf795d28 fix(terminal): correctly use slow path for left/right scroll margin 2024-03-26 12:07:35 -06:00
Qwerasd
23d32e248e perf(terminal): fast-paths for scrolling regions 2024-03-26 12:07:35 -06:00
Mitchell Hashimoto
1ad973b274 Merge pull request #1609 from gpanders/kitty-alt-reset
terminal: reset alt screen kitty keyboard state on full reset
2024-03-26 06:46:48 -07:00
Gregory Anders
6c0609ddc8 terminal: reset alt screen kitty keyboard state on full reset 2024-03-26 08:33:21 -05:00
Mitchell Hashimoto
7f1af89abb terminal: turn unreachable into todo 2024-03-25 20:11:21 -07:00
Mitchell Hashimoto
ad5d7b6c5a terminal: insert/deleteLines with L/R region across pages 2024-03-25 20:07:19 -07:00
Mitchell Hashimoto
fe43462eb3 terminal: address todo to re-resolve 905 2024-03-25 11:20:28 -07:00
Mitchell Hashimoto
62abecd49d terminal: deleteLines resets line wrap 2024-03-25 10:09:23 -07:00
Mitchell Hashimoto
a58b03c5a0 terminal: insertLines clears row wrap state 2024-03-25 10:06:14 -07:00
Mitchell Hashimoto
dc858980de terminal: deleteChars resets row wrap state 2024-03-25 09:54:17 -07:00
Mitchell Hashimoto
3e84591b84 terminal: insertBlanks doesn't split spacer tail 2024-03-24 21:27:45 -07:00
Mitchell Hashimoto
d1a0149982 terminal: deleteChars must not shift a spacer head 2024-03-24 20:47:04 -07:00
Mitchell Hashimoto
36240b897c terminal: many more assertions around spacer state 2024-03-24 20:27:47 -07:00
Mitchell Hashimoto
be3749f1ad terminal: decaln accounts for styles across pages 2024-03-24 15:13:13 -07:00
Mitchell Hashimoto
25a5e078fa terminal: more accidental logging 2024-03-22 20:28:23 -07:00
Mitchell Hashimoto
06a8e4ae72 terminal: spacer heads should only exist w/o l/r margin 2024-03-22 20:28:23 -07:00
Mitchell Hashimoto
71c04db5a9 terminal: fix cursor style on deleteLines 2024-03-22 20:28:22 -07:00
Mitchell Hashimoto
40cac97c86 terminal: insertChars/deleteChars needs to account properly 2024-03-22 20:28:22 -07:00
Mitchell Hashimoto
3b6ae6807c terminal: add more integrity assertions 2024-03-22 20:28:22 -07:00
Mitchell Hashimoto
2d8810b4be terminal: clear styles properly for clearing wide spacers 2024-03-22 20:28:21 -07:00
Mitchell Hashimoto
cc75cc9980 terminal: deleteChars should not split wide char cursor x 2024-03-22 20:28:16 -07:00
Mitchell Hashimoto
a7f74a9dd6 terminal: remove unnecessary todo 2024-03-22 20:28:16 -07:00
Mitchell Hashimoto
b0c0307dda terminal: eraseDisplay complete needs to delete kitty images 2024-03-22 20:28:16 -07:00
Mitchell Hashimoto
3f23de4373 terminal: remove completed todo 2024-03-22 20:28:16 -07:00
Mitchell Hashimoto
29a9d09bbd terminal: when overwriting wide spacer tail, clear graphemes 2024-03-22 20:28:15 -07:00
Mitchell Hashimoto
631fdf00a8 terminal: style needs to be copied to new page on scroll 2024-03-22 20:28:12 -07:00
Mitchell Hashimoto
b8d88fd8a2 terminal: deleteLines with zero count should do nothing 2024-03-22 20:28:12 -07:00
Mitchell Hashimoto
56feeb28a8 terminal: fullReset should reset cursor style 2024-03-22 20:28:12 -07:00
Mitchell Hashimoto
1f62284c26 terminal: delete/insertLines uses correct page for clearing 2024-03-22 20:28:12 -07:00
Mitchell Hashimoto
5e1f8b6cc4 terminal: insertLines/deleteLines handle split across pages 2024-03-22 20:28:12 -07:00
Mitchell Hashimoto
2b50bd5305 terminal: deleteLines assertion for same page 2024-03-22 20:28:12 -07:00
Mitchell Hashimoto
22c181ca75 terminal: insertLines uses iterators to handle pages 2024-03-22 20:28:11 -07:00
Mitchell Hashimoto
a59d4286c7 terminal: adjust page capacity for graphemes if necessary 2024-03-22 20:28:04 -07:00
Mitchell Hashimoto
d805fdd672 core: mouse untracks pin in right screen 2024-03-22 20:28:00 -07:00
Mitchell Hashimoto
49e8acbcd2 core: configurable scrollback limit 2024-03-22 20:27:59 -07:00
Mitchell Hashimoto
03abde6ba8 terminal: resize handles increased styles/graphemes 2024-03-22 20:27:59 -07:00
Mitchell Hashimoto
9137f52cbf terminal: resize cols without reflow handles higher caps 2024-03-22 20:27:59 -07:00
Mitchell Hashimoto
5e68bc60e0 terminal: resize page on unique style per cell 2024-03-22 20:27:59 -07:00
Mitchell Hashimoto
48d40793e7 terminal: bring back clearPromptForResize, with tests! 2024-03-22 20:27:55 -07:00
Mitchell Hashimoto
fdbda5365e terminal: do not set selection manually 2024-03-22 20:27:51 -07:00