Mercurial > vim
changeset 15697:b7a88676e81c v8.1.0856
patch 8.1.0856: when scrolling a window the cursorline is not always updated
commit https://github.com/vim/vim/commit/bbb5f8d4c2cbc5f48556008875f57cbe7fc4ac6c
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Jan 31 13:22:32 2019 +0100
patch 8.1.0856: when scrolling a window the cursorline is not always updated
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.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 31 Jan 2019 13:30:07 +0100 |
parents | 2cc75ec8bda2 |
children | 0651ea0a9334 |
files | src/move.c src/normal.c src/proto/move.pro src/version.c |
diffstat | 4 files changed, 8 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/move.c +++ b/src/move.c @@ -19,7 +19,6 @@ #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); @@ -128,7 +127,7 @@ reset_cursorline(void) * 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 @@ -158,7 +157,6 @@ redraw_for_cursorline(win_T *wp) } else redraw_win_later(wp, SOME_VALID); - wp->w_last_cursorline = wp->w_cursor.lnum; } #endif }
--- a/src/normal.c +++ b/src/normal.c @@ -4587,6 +4587,10 @@ nv_mousescroll(cmdarg_T *cap) } } # endif +# ifdef FEAT_SYN_HL + if (curwin != old_curwin && curwin->w_p_cul) + redraw_for_cursorline(curwin); +# endif curwin->w_redr_status = TRUE;