From 683f63c92992da8d9277a0a29c04bbf217241e57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Sun, 3 Jan 2021 15:15:34 +0100 Subject: [PATCH] selection: update: find_word_boundary_{left,right}: coordinates are screen local --- selection.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/selection.c b/selection.c index df643486..05080561 100644 --- a/selection.c +++ b/selection.c @@ -667,13 +667,19 @@ selection_update(struct terminal *term, int col, int row) case SELECTION_SEMANTIC_WORD: switch (term->selection.direction) { - case SELECTION_LEFT: - find_word_boundary_left(term, &new_end, term->selection.spaces_only); + case SELECTION_LEFT: { + struct coord end = {col, row}; + find_word_boundary_left(term, &end, term->selection.spaces_only); + new_end = (struct coord){end.col, term->grid->view + end.row}; break; + } - case SELECTION_RIGHT: - find_word_boundary_right(term, &new_end, term->selection.spaces_only); + case SELECTION_RIGHT: { + struct coord end = {col, row}; + find_word_boundary_right(term, &end, term->selection.spaces_only); + new_end = (struct coord){end.col, term->grid->view + end.row}; break; + } case SELECTION_UNDIR: break;