search: fix next/prev not updating selection correctly when matches overlap

When the new match overlapped with the old match, the selection wasn’t
updated correctly.
This commit is contained in:
Daniel Eklöf 2022-04-17 19:16:47 +02:00
parent 24ee3dcc10
commit c5519e2aa6
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
3 changed files with 11 additions and 3 deletions

View file

@ -235,9 +235,15 @@ search_update_selection(struct terminal *term, const struct range *match)
}
#endif
/* Begin a new selection if the start coords changed */
/*
* Begin a new selection if the start coords changed
*
* Note: check column against selection.coords, since our old
* start column isnt reliable - we modify it when searching
* next or prev.
*/
if (start_row != term->search.match.row ||
start_col != term->search.match.col)
start_col != term->selection.coords.start.col)
{
int selection_row = start_row - grid->view + grid->num_rows;
selection_row &= grid->num_rows - 1;