Problem: When scrolling a window other than the current one the cursorline
highlighting is not always updated. (Jason Franklin)
Solution: Call redraw_for_cursorline() after scrolling. Only set
w_last_cursorline when drawing the cursor line. Reset the lines
to be redrawn also when redrawing the whole window.
#include "vim.h"
-static void redraw_for_cursorline(win_T *wp);
static int scrolljump_value(void);
static int check_top_offset(void);
static void curs_rows(win_T *wp);
* Redraw when w_cline_row changes and 'relativenumber' or 'cursorline' is
* set.
*/
- static void
+ void
redraw_for_cursorline(win_T *wp)
{
if ((wp->w_p_rnu
}
else
redraw_win_later(wp, SOME_VALID);
- wp->w_last_cursorline = wp->w_cursor.lnum;
}
#endif
}
}
}
# endif
+# ifdef FEAT_SYN_HL
+ if (curwin != old_curwin && curwin->w_p_cul)
+ redraw_for_cursorline(curwin);
+# endif
curwin->w_redr_status = TRUE;
/* move.c */
void reset_cursorline(void);
+void redraw_for_cursorline(win_T *wp);
void update_topline_redraw(void);
void update_topline(void);
void update_curswant(void);
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 856,
/**/
855,
/**/