From 3aca0916f0dba6114ae0f7d5458763a934fe7a02 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Mon, 18 Apr 2022 18:32:19 +0100 Subject: patch 8.2.4785: Visual mode not stopped if win_gotoid() goes to other buffer Problem: Visual mode not stopped early enough if win_gotoid() goes to another buffer. (Sergey Vlasov) Solution: Stop Visual mode before jumping to another buffer. (closes #10217) --- src/evalwindow.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/evalwindow.c') diff --git a/src/evalwindow.c b/src/evalwindow.c index f6bc79f9e8..53fd1e3569 100644 --- a/src/evalwindow.c +++ b/src/evalwindow.c @@ -817,6 +817,9 @@ f_win_gotoid(typval_T *argvars, typval_T *rettv) FOR_ALL_TAB_WINDOWS(tp, wp) if (wp->w_id == id) { + // When jumping to another buffer stop Visual mode. + if (VIsual_active && wp->w_buffer != curbuf) + end_visual_mode(); goto_tabpage_win(tp, wp); rettv->vval.v_number = 1; return; -- cgit v1.2.3