Mitchell Hashimoto
f719999950
terminal: add assertion to page integrity that row/col count > 0
2024-03-24 14:46:43 -07:00
Mitchell Hashimoto
225cc642b9
terminal: allow growing beyond max size for active area to fit
2024-03-24 09:45:35 -07:00
Mitchell Hashimoto
6cbe699533
terminal: remove problematic test on 4k pages, still working on it
2024-03-23 21:43:16 -07:00
Mitchell Hashimoto
e4332891ee
terminal: avoid memory fragmentation if possible on col grow
2024-03-23 21:37:34 -07:00
Mitchell Hashimoto
8c148fc32e
terminal: use std.meta.eql for equality checks
2024-03-22 21:04:05 -07:00
Mitchell Hashimoto
eb6536f4a7
address latest zig changes
2024-03-22 20:29:45 -07:00
Mitchell Hashimoto
25a5e078fa
terminal: more accidental logging
2024-03-22 20:28:23 -07:00
Mitchell Hashimoto
a301f7da06
terminal: undo accidental debug logs
2024-03-22 20:28:23 -07:00
Mitchell Hashimoto
9685a56941
terminal: clear unprotected row should preserve row attrs
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
8818e4da05
terminal: bitmapallocator handles perfectly divisble chunk size
2024-03-22 20:28:23 -07:00
Mitchell Hashimoto
cd30534808
terminal: no scrollback eraseRows needs to fix style
2024-03-22 20:28:23 -07:00
Mitchell Hashimoto
ee5be26511
terminal: prevent false positive integrity check
2024-03-22 20:28:23 -07:00
Mitchell Hashimoto
0bc831d19f
terminal: relax grapheme integrity check for fast paths
2024-03-22 20:28:22 -07:00
Mitchell Hashimoto
f848ed2a63
terminal: handle row wrap integrity issues on reflow
2024-03-22 20:28:22 -07:00
Mitchell Hashimoto
71c04db5a9
terminal: fix cursor style on deleteLines
2024-03-22 20:28:22 -07:00
Mitchell Hashimoto
65696c9900
terminal: clearcells only decs cursor ref if same page
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
4c35f35904
terminal: get rid of some verifications, comment why
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
731f917350
terminal: add Screen integrity checks, pepper them through cursors
2024-03-22 20:28:22 -07:00
Mitchell Hashimoto
2e9cc75206
terminal: add integrity checks throughout PageList
2024-03-22 20:28:22 -07:00
Mitchell Hashimoto
1649641d18
terminal: add some integrity assertions
2024-03-22 20:28:22 -07:00
Mitchell Hashimoto
1be06e8f3f
terminal: add page.verifyIntegrity function
2024-03-22 20:28:22 -07:00
Mitchell Hashimoto
8142eb9678
terminal: moveCell handles graphemes, clears source
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
3513b1cdc2
terminal: properly clear style in error scenario
2024-03-22 20:28:18 -07:00
Mitchell Hashimoto
1949b2b177
terminal: BitmapAllocator supports allocations across bitmaps
2024-03-22 20:28:16 -07:00
Mitchell Hashimoto
565a5a6048
terminal: bitmap allocator handles 64-chunk sized allocs
2024-03-22 20:28:16 -07:00
Mitchell Hashimoto
dfa5b2e6fc
terminal: pagelist handle scenario where reflow erases all pages
2024-03-22 20:28:16 -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
9d826d8837
terminal: add assertion for trackPin as commented
2024-03-22 20:28:15 -07:00
Mitchell Hashimoto
91602a4ce7
terminal: Screen scroll test and handle single row screens
2024-03-22 20:28:15 -07:00
Mitchell Hashimoto
e64d8f5304
terminal: handles eraseRows that erases our full pagelist
2024-03-22 20:28:15 -07:00
Mitchell Hashimoto
29a9d09bbd
terminal: when overwriting wide spacer tail, clear graphemes
2024-03-22 20:28:15 -07:00
Mitchell Hashimoto
9e42ee0dc9
terminal: all cursorReload scenarios should check style data
2024-03-22 20:28:13 -07:00
Mitchell Hashimoto
f67b95136d
terminal: in all cursor move cases, we need to account for page changes
2024-03-22 20:28:13 -07:00
Mitchell Hashimoto
77362d9aa7
terminal: resize should preserve cursor style ref
2024-03-22 20:28:13 -07:00
Mitchell Hashimoto
a40899fa3c
terminal: only reload style if we're on a new page on scroll
2024-03-22 20:28:12 -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
1c57bbabda
termio/exec: clear screen should erase rows and shift up
2024-03-22 20:28:12 -07:00
Mitchell Hashimoto
26321dc1c9
termio/exec: only clear above cursor if cursor is not on y=0
2024-03-22 20:28:12 -07:00
Mitchell Hashimoto
06d944c292
terminal: cloneFrom clears destination
2024-03-22 20:28:12 -07:00
Gregory Anders
d54d7cd581
terminal: set PageList viewport to active area when cloned
...
As an optimization, the renderer does not attempt to find the cell under
the cursor if the viewport is in the scrollback (i.e. not the active
area). When the renderer clones the screen state it also clones the
PageList, and the cloned PageList has its viewport set to the top of the
scrollback.
This caused the renderer to never attempt to find the cell under the
cursor, which in turn caused cells under the cursor to be improperly
highlighted. Instead, when the PageList is cloned initialize its
viewport to the active area.
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