mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-26 01:40:12 -05:00
grid: don’t cut multi-column chars in half when resizing the alt screen
When we resize the alt screen, we don’t reflow the text, we simply truncate all the lines. When doing this, make sure we don’t truncate in the middle of a multi-column character.
This commit is contained in:
parent
363aeea2df
commit
b7709cc013
2 changed files with 7 additions and 1 deletions
6
grid.c
6
grid.c
|
|
@ -194,11 +194,15 @@ grid_resize_without_reflow(
|
|||
new_row->dirty = old_row->dirty;
|
||||
new_row->linebreak = false;
|
||||
|
||||
/* Clear "new" columns */
|
||||
if (new_cols > old_cols) {
|
||||
/* Clear "new" columns */
|
||||
memset(&new_row->cells[old_cols], 0,
|
||||
sizeof(struct cell) * (new_cols - old_cols));
|
||||
new_row->dirty = true;
|
||||
} else if (old_cols > new_cols) {
|
||||
/* Make sure we don't cut a multi-column character in two */
|
||||
for (int i = new_cols; i > 0 && old_row->cells[i].wc > CELL_SPACER; i--)
|
||||
new_row->cells[i - 1].wc = 0;
|
||||
}
|
||||
|
||||
/* Map sixels on current "old" row to current "new row" */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue