diff options
| author | Marc André Tanner <mat@brain-dump.org> | 2017-06-13 15:26:04 +0200 |
|---|---|---|
| committer | Marc André Tanner <mat@brain-dump.org> | 2017-06-15 15:51:43 +0200 |
| commit | fdc73f01e040047a74d7323ca777055e061ec343 (patch) | |
| tree | 130f31f96c1447c7e7f31c3bfd8bf1468b87f502 /view.c | |
| parent | 21adfe438b32cd0cd41ca00e99adfe827c4f4a95 (diff) | |
| download | vis-fdc73f01e040047a74d7323ca777055e061ec343.tar.gz vis-fdc73f01e040047a74d7323ca777055e061ec343.tar.xz | |
view: fix view_selections_set
The anchor needs to be set after the cursor was positioned,
otherwise the cursor placement will immediately destroy the
selection for in the non-anchored case.
Diffstat (limited to 'view.c')
| -rw-r--r-- | view.c | 10 |
1 files changed, 2 insertions, 8 deletions
@@ -1220,14 +1220,8 @@ void view_selections_set(Selection *s, const Filerange *r) { size_t end = r->end; if (r->start != end) end = text_char_prev(txt, end); - if (left_extending) { - s->anchor = text_mark_set(txt, end); - s->cursor = text_mark_set(txt, r->start); - } else { - s->anchor = text_mark_set(txt, r->start); - s->cursor = text_mark_set(txt, end); - } - view_cursors_to(s, text_mark_get(s->view->text, s->cursor)); + view_cursors_to(s, left_extending ? r->start : end); + s->anchor = text_mark_set(txt, left_extending ? end : r->start); } void view_selections_save(Selection *s) { |
