5798 Commits

Author SHA1 Message Date
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
Mitchell Hashimoto
22c181ca75 terminal: insertLines uses iterators to handle pages 2024-03-22 20:28:11 -07:00
Mitchell Hashimoto
3f0607d6c0 terminal: PageList rowIterator respects limit row 2024-03-22 20:28:07 -07:00
Mitchell Hashimoto
07a27072dc inspector: needs to call new PageList.maxSize func 2024-03-22 20:28:07 -07:00
Mitchell Hashimoto
e7a2a9bcd1 terminal: resize no reflow must do cols before rows 2024-03-22 20:28:07 -07:00
Mitchell Hashimoto
7e010caea1 terminal: handle resizing into increased implicit max size 2024-03-22 20:28:06 -07:00
Mitchell Hashimoto
e8a2dc5715 terminal: cleaner impl of getTopLeft(.active) 2024-03-22 20:28:06 -07:00
Mitchell Hashimoto
b76995b5af terminal: resizing greater cols without reflow should preserve cols 2024-03-22 20:28:06 -07:00
Mitchell Hashimoto
c8a3040519 terminal: resizing to lt rows should not trim blanks with tracked pin 2024-03-22 20:28:06 -07:00
Jeffrey C. Ollie
bf34582f54 allow building nix package with different optimizations 2024-03-22 20:28:06 -07:00
Mitchell Hashimoto
f0e3516c34 terminal: fix off-by-one tracked pin issues when page is pruned 2024-03-22 20:28:06 -07:00
Jeffrey C. Ollie
a69d9507b3 build ghostty nix package with ReleaseSafe 2024-03-22 20:28:06 -07:00
Mitchell Hashimoto
1ac0980ea0 terminal: pruned pages should keep tracked pins in top-left 2024-03-22 20:28:06 -07:00
Mitchell Hashimoto
533a867770 ci: release PR on sync 2024-03-22 20:28:06 -07:00
Mitchell Hashimoto
fd382789f3 ci: PR builds for macOS should be ReleaseSafe 2024-03-22 20:28:06 -07:00
Mitchell Hashimoto
7ad3195794 ci: create PR releases 2024-03-22 20:28:06 -07:00
Qwerasd
869b6b18e8 terminal/page: improve capacity adjust cols tests 2024-03-22 20:28:05 -07:00
Qwerasd
9630c39ea4 terminal/page: improved capacity adjust logic 2024-03-22 20:28:05 -07:00
Mitchell Hashimoto
fd9280429e renderer: re-enable URL underlining 2024-03-22 20:28:05 -07:00
Mitchell Hashimoto
7419794a7b renderer: convert link to new state 2024-03-22 20:28:05 -07:00
Mitchell Hashimoto
5664c3e3c9 core: enable link hovering 2024-03-22 20:28:05 -07:00
Mitchell Hashimoto
d664840b7f terminal: add StringMap back 2024-03-22 20:28:05 -07:00
Mitchell Hashimoto
bca51ee771 terminal: selectionString takes a struct for opts 2024-03-22 20:28:05 -07:00