search: fix start/end row in selection

This commit is contained in:
Daniel Eklöf 2019-08-28 17:26:44 +02:00
parent 64179bce46
commit b8b43e2eab
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

View file

@ -161,11 +161,25 @@ search_update(struct terminal *term)
if (start_row != term->search.match.row ||
start_col != term->search.match.col)
{
selection_start(term, start_col, start_row - term->grid->view);
int selection_row = start_row - term->grid->view;
while (selection_row < 0)
selection_row += term->grid->num_rows;
assert(selection_row >= 0 &&
selection_row < term->grid->num_rows);
selection_start(term, start_col, selection_row);
}
/* Update selection endpoint */
selection_update(term, end_col, end_row - term->grid->view);
{
int selection_row = end_row - term->grid->view;
while (selection_row < 0)
selection_row += term->grid->num_rows;
assert(selection_row >= 0 &&
selection_row < term->grid->num_rows);
selection_update(term, end_col, selection_row);
}
/* Update match state */
term->search.match.row = start_row;