From 9fcf5977c05686d55892d32fa3f980b03ef1b30a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Fri, 15 Mar 2024 17:39:43 +0100 Subject: [PATCH] sixel: fix cursor positioning when image is split up into several --- sixel.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sixel.c b/sixel.c index c9df4ab4..01f45d6b 100644 --- a/sixel.c +++ b/sixel.c @@ -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 */