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:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user