From cc02902db0627dfbb5c290a35c1c0480a916d2bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Sun, 31 Aug 2025 09:23:05 +0200 Subject: [PATCH] render: multi-cursor: translate view-based row number to absolute Otherwise we'll lookup the wrong multi-cursor shape. --- render.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/render.c b/render.c index b86f1c5f..5af3d44b 100644 --- a/render.c +++ b/render.c @@ -1348,8 +1348,14 @@ render_row(struct terminal *term, pixman_image_t *pix, cursor_col == col, MULTI_CURSOR_SHAPE_NONE); } } else { + /* Translate view-relative row number to absolute numbers */ + int multi_cursor_row = row_no; + multi_cursor_row += term->grid->view; + multi_cursor_row -= term->grid->offset; + multi_cursor_row &= term->grid->num_rows - 1; + enum multi_cursor_shape *extra_cursors = - &term->multi_cursor.shapes[row_no * term->cols + term->cols - 1]; + &term->multi_cursor.shapes[multi_cursor_row * term->cols + term->cols - 1]; for (int col = term->cols - 1; col >= 0; col--, extra_cursors--) { render_cell(term, pix, damage, row, row_no, col,