1
0
forked from aniani/vim

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.
This commit is contained in:
Bram Moolenaar
2022-05-31 13:43:12 +01:00
parent 4aaf3e7f4d
commit 368137aa52
7 changed files with 49 additions and 6 deletions

View File

@@ -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.