sixel: fix cursor positioning when image is split up into several

This commit is contained in:
Daniel Eklöf 2024-03-15 17:39:43 +01:00
parent bce1d7313d
commit 9fcf5977c0
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

View file

@ -1310,8 +1310,11 @@ sixel_unhook(struct terminal *term)
* Position the text cursor based on the text row
* touched by the last sixel
*/
const int pixel_rows = pixel_rows_left > 0
? image.original.height
: term->sixel.pos.row;
const int term_rows =
(image.original.height + term->cell_height - 1) / term->cell_height;
(pixel_rows + term->cell_height - 1) / term->cell_height;
xassert(term_rows <= image.rows);
@ -1324,6 +1327,8 @@ sixel_unhook(struct terminal *term)
? min(image.pos.col + image.cols, term->cols - 1)
: image.pos.col));
}
term->sixel.pos.row -= image.original.height;
}
/* Dirty touched cells, and scroll terminal content if necessary */