1
0
forked from aniani/vim

patch 8.2.0108: when sign text is changed a manual redraw is needed

Problem:    When sign text is changed a manual redraw is needed. (Pontus
            Lietzler)
Solution:   Redraw automatically. (closes #5455)
This commit is contained in:
Bram Moolenaar
2020-01-09 21:01:59 +01:00
parent 4ba6441818
commit bf0acff012
6 changed files with 24 additions and 4 deletions

View File

@@ -1025,6 +1025,16 @@ sign_define_by_name(
else
sp_prev->sn_next = sp;
}
else
{
win_T *wp;
// Signs may already exist, a redraw is needed in windows with a
// non-empty sign list.
FOR_ALL_WINDOWS(wp)
if (wp->w_buffer->b_signlist != NULL)
redraw_buf_later(wp->w_buffer, NOT_VALID);
}
// set values for a defined sign.
if (icon != NULL)
@@ -1781,12 +1791,10 @@ sign_get_placed(
else
{
FOR_ALL_BUFFERS(buf)
{
if (buf->b_signlist != NULL)
sign_get_placed_in_buf(buf, 0, sign_id, sign_group, retlist);
}
}
}
# if defined(FEAT_SIGN_ICONS) || defined(PROTO)
/*

View File

@@ -0,0 +1,6 @@
| +0#0000e05#a8a8a8255@1|x+0#0000000#ffffff0@72
| +0#0000e05#a8a8a8255@1|x+0#0000000#ffffff0@1| @70
|-+0&#ffff4012|)>m+0&#ffffff0@3| @68
| +0#0000e05#a8a8a8255@1|y+0#0000000#ffffff0@3| @68
|~+0#4040ff13&| @73
|:+0#0000000&|s|i|g|n| |d|e|f|i|n|e| |s|1| |t|e|x|t|=|-|)| @33|2|,|1| @10|A|l@1|

View File

@@ -1747,12 +1747,16 @@ func Test_sign_cursor_position()
END
call writefile(lines, 'XtestSigncolumn')
let buf = RunVimInTerminal('-S XtestSigncolumn', {'rows': 6})
call VerifyScreenDump(buf, 'Test_sign_cursor_01', {})
call VerifyScreenDump(buf, 'Test_sign_cursor_1', {})
" Change the sign text
call term_sendkeys(buf, ":sign define s1 text=-)\<CR>")
call VerifyScreenDump(buf, 'Test_sign_cursor_2', {})
" update cursor position calculation
call term_sendkeys(buf, "lh")
call term_sendkeys(buf, ":sign unplace 10\<CR>")
call VerifyScreenDump(buf, 'Test_sign_cursor_02', {})
call VerifyScreenDump(buf, 'Test_sign_cursor_3', {})
" clean up

View File

@@ -742,6 +742,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
108,
/**/
107,
/**/