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:
12
src/sign.c
12
src/sign.c
@@ -1025,6 +1025,16 @@ sign_define_by_name(
|
|||||||
else
|
else
|
||||||
sp_prev->sn_next = sp;
|
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.
|
// set values for a defined sign.
|
||||||
if (icon != NULL)
|
if (icon != NULL)
|
||||||
@@ -1781,10 +1791,8 @@ sign_get_placed(
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
FOR_ALL_BUFFERS(buf)
|
FOR_ALL_BUFFERS(buf)
|
||||||
{
|
|
||||||
if (buf->b_signlist != NULL)
|
if (buf->b_signlist != NULL)
|
||||||
sign_get_placed_in_buf(buf, 0, sign_id, sign_group, retlist);
|
sign_get_placed_in_buf(buf, 0, sign_id, sign_group, retlist);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
6
src/testdir/dumps/Test_sign_cursor_2.dump
Normal file
6
src/testdir/dumps/Test_sign_cursor_2.dump
Normal 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|
|
@@ -1747,12 +1747,16 @@ func Test_sign_cursor_position()
|
|||||||
END
|
END
|
||||||
call writefile(lines, 'XtestSigncolumn')
|
call writefile(lines, 'XtestSigncolumn')
|
||||||
let buf = RunVimInTerminal('-S XtestSigncolumn', {'rows': 6})
|
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
|
" update cursor position calculation
|
||||||
call term_sendkeys(buf, "lh")
|
call term_sendkeys(buf, "lh")
|
||||||
call term_sendkeys(buf, ":sign unplace 10\<CR>")
|
call term_sendkeys(buf, ":sign unplace 10\<CR>")
|
||||||
call VerifyScreenDump(buf, 'Test_sign_cursor_02', {})
|
call VerifyScreenDump(buf, 'Test_sign_cursor_3', {})
|
||||||
|
|
||||||
|
|
||||||
" clean up
|
" clean up
|
||||||
|
@@ -742,6 +742,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
108,
|
||||||
/**/
|
/**/
|
||||||
107,
|
107,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user