summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-03-22 19:43:34 +0100
committerBram Moolenaar <Bram@vim.org>2021-03-22 19:43:34 +0100
commitda1dbed0dfac00952b42982f8fffa42c4f5ed0c8 (patch)
tree9d1293b787f0635d562973e5580bc61d5a3cea96
parent1f448d906b3c516e5864dc5bae3ddbf3664ee649 (diff)
patch 8.2.2644: prop_clear() causes a screen update even when nothing changedv8.2.2644
Problem: prop_clear() causes a screen update even when nothing changed. Solution: Only redraw when a property was cleared. (Dominique Pellé)
-rw-r--r--src/textprop.c5
-rw-r--r--src/version.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/src/textprop.c b/src/textprop.c
index d6782342dd..59b3d53b68 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -535,6 +535,7 @@ f_prop_clear(typval_T *argvars, typval_T *rettv UNUSED)
linenr_T end = start;
linenr_T lnum;
buf_T *buf = curbuf;
+ int did_clear = FALSE;
if (argvars[1].v_type != VAR_UNKNOWN)
{
@@ -562,6 +563,7 @@ f_prop_clear(typval_T *argvars, typval_T *rettv UNUSED)
len = STRLEN(text) + 1;
if ((size_t)buf->b_ml.ml_line_len > len)
{
+ did_clear = TRUE;
if (!(buf->b_ml.ml_flags & ML_LINE_DIRTY))
{
char_u *newtext = vim_strsave(text);
@@ -575,7 +577,8 @@ f_prop_clear(typval_T *argvars, typval_T *rettv UNUSED)
buf->b_ml.ml_line_len = (int)len;
}
}
- redraw_buf_later(buf, NOT_VALID);
+ if (did_clear)
+ redraw_buf_later(buf, NOT_VALID);
}
/*
diff --git a/src/version.c b/src/version.c
index 3d69e9c31a..6fda8fcda0 100644
--- 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 */
/**/
+ 2644,
+/**/
2643,
/**/
2642,