diff src/change.c @ 28363:a9a56b567709 v8.2.4707

patch 8.2.4707: redrawing could be a bit more efficient Commit: https://github.com/vim/vim/commit/8c9796085071950f9a03ca0fe116608e4f86aac2 Author: zeertzjq <zeertzjq@outlook.com> Date: Thu Apr 7 15:08:01 2022 +0100 patch 8.2.4707: redrawing could be a bit more efficient Problem: Redrawing could be a bit more efficient. Solution: Optimize redrawing. (closes https://github.com/vim/vim/issues/10105)
author Bram Moolenaar <Bram@vim.org>
date Thu, 07 Apr 2022 16:15:03 +0200
parents 3f6c0a5c99bb
children ef62a0ea2a78
line wrap: on
line diff
--- a/src/change.c
+++ b/src/change.c
@@ -640,9 +640,13 @@ changed_common(
 	    if (hasAnyFolding(wp))
 		set_topline(wp, wp->w_topline);
 #endif
-	    // Relative numbering may require updating more.
+	    // If lines have been added or removed, relative numbering always
+	    // requires a redraw.
 	    if (wp->w_p_rnu && xtra != 0)
-		redraw_win_later(wp, SOME_VALID);
+	    {
+		wp->w_last_cursor_lnum_rnu = 0;
+		redraw_win_later(wp, VALID);
+	    }
 #ifdef FEAT_SYN_HL
 	    // Cursor line highlighting probably need to be updated with
 	    // "VALID" if it's below the change.