From 78b91006ad1292eb03df9f3812432995d2506064 Mon Sep 17 00:00:00 2001 From: "Michael D. Lowis" Date: Fri, 18 Nov 2016 22:33:58 -0500 Subject: [PATCH] fixed right-click find behavior --- libedit/view.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/libedit/view.c b/libedit/view.c index 17b438b..428e09e 100644 --- a/libedit/view.c +++ b/libedit/view.c @@ -308,10 +308,21 @@ void view_select(View* view, size_t row, size_t col) { } void view_find(View* view, size_t row, size_t col) { - view_select(view, row, col); - Sel sel = view->selection; - buf_find(&(view->buffer), &sel.beg, &sel.end); - view->selection = sel; + size_t off = getoffset(view, row, col); + if (off != SIZE_MAX) { + Sel sel = view->selection; + if (!num_selected(sel) || !in_selection(sel, off)) { + view_setcursor(view, row, col); + sel = view->selection; + selcontext(view, &sel); + buf_find(&(view->buffer), &sel.beg, &sel.end); + sel.end++; + } else { + buf_find(&(view->buffer), &sel.beg, &sel.end); + } + view->selection = sel; + view->sync_needed = true; + } } void view_insert(View* view, Rune rune) { -- 2.52.0