456 Commits

Author SHA1 Message Date
Qwerasd
93b038f490 fix(RefCountedSet): add NeedsRehash error and fix PSL counting bug
Prevent bad input from causing repeated OutOfMemory errors by erroring
with NeedsRehash instead when there are unused dead IDs available.

Additionally, properly decrement PSL stats when reviving dead IDs.
2024-06-24 20:32:22 -07:00
Qwerasd
9741b3a18c perf: introduce RefCountedSet structure, use it for Style.Set 2024-06-13 22:59:03 -04:00
Mitchell Hashimoto
0d94fb61c9 terminal: all cursor movement needs to mark the old and new page dirty 2024-06-07 15:03:02 -07:00
Mitchell Hashimoto
c2b0bb6395 terminal: mark old/new rows as dirty when moving the cursor absolute 2024-06-07 14:55:02 -07:00
Mitchell Hashimoto
0335b0eada core: preedit modification sets full screen dirty
Fixes #1735
2024-05-07 19:19:58 -07:00
Mitchell Hashimoto
bb138becc5 terminal: resize causes full screen redraw 2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
037f8d3a5e terminal: set dirty bit for screen swap 2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
3f9e3c39a4 terminal: track dirty state of palette and reverse colors 2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
f867fabf8e terminal: new coordinate type 2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
fb25f5cea1 terminal: more dirty tests 2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
cfcd16354a terminal: many more dirty checks 2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
1c05939f17 terminal: deleteChars dirty 2024-05-01 20:31:49 -07:00
Mitchell Hashimoto
a53dbaaa31 terminal: more dirty tests 2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
19ddbbc7d6 terminal: eraseRowBounded dirty tracking 2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
0749b67832 terminal: index dirty tests one todo 2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
b46e028069 terminal: scrollDown dirty tests 2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
bd1a7d3db1 terminal: scrollDown dirty tests 2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
58aa4cc10b terminal: dirty tests for insertLines 2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
f7a57bd2c8 terminal: dirty tests on t/b/l/r margins 2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
11c195e493 terminal: dirty tracking on print with tests 2024-05-01 20:31:48 -07:00
Mitchell Hashimoto
3f16234f72 terminal: Coordinate uses CellCountInt 2024-04-26 20:52:08 -07:00
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