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;
 
--- a/src/proto/move.pro
+++ b/src/proto/move.pro
@@ -1,5 +1,6 @@
 /* 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);
--- a/src/version.c
+++ b/src/version.c
@@ -784,6 +784,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    856,
+/**/
     855,
 /**/
     854,