mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-04 04:06:06 -05:00
scroll: destroy scrolled out sixels before scroll is applied
The logic that breaks out of sixel loops does not work for rows that has already wrapped around. Thus, we need to destroy sixels that are about to be scrolled out *before* we actually scroll. Since this is the *only* time we destroy sixels (instead of overwriting it), rename the sixel functions. And, since they now do a very specific thing, they can be greatly simplified (and thus faster).
This commit is contained in:
parent
a136987678
commit
62be729c45
4 changed files with 64 additions and 142 deletions
11
sixel.h
11
sixel.h
|
|
@ -12,15 +12,8 @@ void sixel_unhook(struct terminal *term);
|
|||
|
||||
void sixel_destroy(struct sixel *sixel);
|
||||
|
||||
/*
|
||||
* Deletes all sixels that are touched by the specified row(s). Used
|
||||
* when scrolling, to competely remove sixels that has either
|
||||
* completely, or partly scrolled out of history.
|
||||
*
|
||||
* Row numbers are relative to the current grid offset.
|
||||
*/
|
||||
void sixel_delete_in_range(struct terminal *term, int row_start, int row_end);
|
||||
void sixel_delete_at_row(struct terminal *term, int row);
|
||||
void sixel_scroll_up(struct terminal *term, int rows);
|
||||
void sixel_scroll_down(struct terminal *term, int rows);
|
||||
|
||||
/*
|
||||
* Remove sixel data from the specified location. Used when printing
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue