From 368137aa525982984beed73940af481ac53a62af Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Tue, 31 May 2022 13:43:12 +0100 Subject: patch 8.2.5047: CurSearch highlight is often wrong Problem: CurSearch highlight is often wrong. Solution: Remember the last highlighted position and redraw when needed. --- src/drawscreen.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/drawscreen.c') diff --git a/src/drawscreen.c b/src/drawscreen.c index 2838bf88cf..ed8927127e 100644 --- a/src/drawscreen.c +++ b/src/drawscreen.c @@ -1618,6 +1618,19 @@ win_update(win_T *wp) } #endif } + +#ifdef FEAT_SEARCH_EXTRA + if (search_hl_has_cursor_lnum > 0) + { + // CurSearch was used last time, need to redraw the line with it to + // avoid having two matches highlighted with CurSearch. + if (mod_top == 0 || mod_top > search_hl_has_cursor_lnum) + mod_top = search_hl_has_cursor_lnum; + if (mod_bot == 0 || mod_bot < search_hl_has_cursor_lnum + 1) + mod_bot = search_hl_has_cursor_lnum + 1; + } +#endif + #ifdef FEAT_FOLDING if (mod_top != 0 && hasAnyFolding(wp)) { @@ -1684,6 +1697,10 @@ win_update(win_T *wp) } wp->w_redraw_top = 0; // reset for next time wp->w_redraw_bot = 0; +#ifdef FEAT_SEARCH_EXTRA + search_hl_has_cursor_lnum = 0; +#endif + // When only displaying the lines at the top, set top_end. Used when // window has scrolled down for msg_scrolled. -- cgit v1.2.3