Mercurial > vim
changeset 19095:5cd0986ab02e v8.2.0108
patch 8.2.0108: when sign text is changed a manual redraw is needed
Commit: https://github.com/vim/vim/commit/bf0acff012c2f75563c20241f1a5478534fe2c7a
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Jan 9 21:01:59 2020 +0100
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)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 09 Jan 2020 21:15:03 +0100 |
parents | 1c802c751736 |
children | af8bd2f486b6 |
files | src/sign.c src/testdir/dumps/Test_sign_cursor_01.dump src/testdir/dumps/Test_sign_cursor_02.dump src/testdir/dumps/Test_sign_cursor_1.dump src/testdir/dumps/Test_sign_cursor_2.dump src/testdir/dumps/Test_sign_cursor_3.dump src/testdir/test_signs.vim src/version.c |
diffstat | 8 files changed, 36 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- 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); - } } }
rename from src/testdir/dumps/Test_sign_cursor_01.dump rename to src/testdir/dumps/Test_sign_cursor_1.dump
new file mode 100644 --- /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|
rename from src/testdir/dumps/Test_sign_cursor_02.dump rename to src/testdir/dumps/Test_sign_cursor_3.dump
--- 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