diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-01-09 21:01:59 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-01-09 21:01:59 +0100 |
commit | bf0acff012c2f75563c20241f1a5478534fe2c7a (patch) | |
tree | 36314cac21d86f36a268dba88028fe4a36f6bfd3 | |
parent | 4ba64418187995c96fc29e4e4f699cecd57013bd (diff) | |
download | vim-git-bf0acff012c2f75563c20241f1a5478534fe2c7a.tar.gz |
patch 8.2.0108: when sign text is changed a manual redraw is neededv8.2.0108
Problem: When sign text is changed a manual redraw is needed. (Pontus
Lietzler)
Solution: Redraw automatically. (closes #5455)
-rw-r--r-- | src/sign.c | 12 | ||||
-rw-r--r-- | src/testdir/dumps/Test_sign_cursor_1.dump (renamed from src/testdir/dumps/Test_sign_cursor_01.dump) | 0 | ||||
-rw-r--r-- | src/testdir/dumps/Test_sign_cursor_2.dump | 6 | ||||
-rw-r--r-- | src/testdir/dumps/Test_sign_cursor_3.dump (renamed from src/testdir/dumps/Test_sign_cursor_02.dump) | 0 | ||||
-rw-r--r-- | src/testdir/test_signs.vim | 8 | ||||
-rw-r--r-- | src/version.c | 2 |
6 files changed, 24 insertions, 4 deletions
diff --git a/src/sign.c b/src/sign.c index 935ec3c74..9d8d7ac8a 100644 --- a/src/sign.c +++ b/src/sign.c @@ -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,10 +1791,8 @@ 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); - } } } diff --git a/src/testdir/dumps/Test_sign_cursor_01.dump b/src/testdir/dumps/Test_sign_cursor_1.dump index 9ca448193..9ca448193 100644 --- a/src/testdir/dumps/Test_sign_cursor_01.dump +++ b/src/testdir/dumps/Test_sign_cursor_1.dump diff --git a/src/testdir/dumps/Test_sign_cursor_2.dump b/src/testdir/dumps/Test_sign_cursor_2.dump new file mode 100644 index 000000000..2d10a2ced --- /dev/null +++ b/src/testdir/dumps/Test_sign_cursor_2.dump @@ -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| diff --git a/src/testdir/dumps/Test_sign_cursor_02.dump b/src/testdir/dumps/Test_sign_cursor_3.dump index 92643c327..92643c327 100644 --- a/src/testdir/dumps/Test_sign_cursor_02.dump +++ b/src/testdir/dumps/Test_sign_cursor_3.dump diff --git a/src/testdir/test_signs.vim b/src/testdir/test_signs.vim index 862199cd3..d480671d2 100644 --- a/src/testdir/test_signs.vim +++ b/src/testdir/test_signs.vim @@ -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 diff --git a/src/version.c b/src/version.c index f15d748dc..e06dfc6d1 100644 --- a/src/version.c +++ b/src/version.c @@ -743,6 +743,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 108, +/**/ 107, /**/ 106, |