6020 Commits

Author SHA1 Message Date
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
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