changeset 24643:09e64e81c473 v8.2.2860

patch 8.2.2860: adding a text property causes the whole window to be redawn Commit: https://github.com/vim/vim/commit/1764faa38645a559172e9a31f08447385835de81 Author: Bram Moolenaar <Bram@vim.org> Date: Sun May 16 20:18:57 2021 +0200 patch 8.2.2860: adding a text property causes the whole window to be redawn Problem: Adding a text property causes the whole window to be redawn. Solution: Use changed_lines_buf() to only redraw the affected lines.
author Bram Moolenaar <Bram@vim.org>
date Sun, 16 May 2021 20:30:02 +0200
parents 6f451b9cda8e
children 20eabe0f4d72
files src/change.c src/proto/change.pro src/textprop.c src/version.c
diffstat 4 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/change.c
+++ b/src/change.c
@@ -758,7 +758,7 @@ deleted_lines_mark(linenr_T lnum, long c
 /*
  * Marks the area to be redrawn after a change.
  */
-    static void
+    void
 changed_lines_buf(
     buf_T	*buf,
     linenr_T	lnum,	    // first line with change
--- a/src/proto/change.pro
+++ b/src/proto/change.pro
@@ -14,6 +14,7 @@ void appended_lines(linenr_T lnum, long 
 void appended_lines_mark(linenr_T lnum, long count);
 void deleted_lines(linenr_T lnum, long count);
 void deleted_lines_mark(linenr_T lnum, long count);
+void changed_lines_buf(buf_T *buf, linenr_T lnum, linenr_T lnume, long xtra);
 void changed_lines(linenr_T lnum, colnr_T col, linenr_T lnume, long xtra);
 void unchanged(buf_T *buf, int ff, int always_inc_changedtick);
 void save_file_ff(buf_T *buf);
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -345,7 +345,8 @@ prop_add_common(
     }
 
     buf->b_has_textprop = TRUE;  // this is never reset
-    redraw_buf_later(buf, NOT_VALID);
+    changed_lines_buf(buf, start_lnum, end_lnum + 1, 0);
+    redraw_buf_later(buf, VALID);
 }
 
 /*
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2860,
+/**/
     2859,
 /**/
     2858,