From bf0acff012c2f75563c20241f1a5478534fe2c7a Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Thu, 9 Jan 2020 21:01:59 +0100 Subject: 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) --- src/sign.c | 12 ++++++++++-- src/testdir/dumps/Test_sign_cursor_01.dump | 6 ------ src/testdir/dumps/Test_sign_cursor_02.dump | 6 ------ src/testdir/dumps/Test_sign_cursor_1.dump | 6 ++++++ src/testdir/dumps/Test_sign_cursor_2.dump | 6 ++++++ src/testdir/dumps/Test_sign_cursor_3.dump | 6 ++++++ src/testdir/test_signs.vim | 8 ++++++-- src/version.c | 2 ++ 8 files changed, 36 insertions(+), 16 deletions(-) delete mode 100644 src/testdir/dumps/Test_sign_cursor_01.dump delete mode 100644 src/testdir/dumps/Test_sign_cursor_02.dump create mode 100644 src/testdir/dumps/Test_sign_cursor_1.dump create mode 100644 src/testdir/dumps/Test_sign_cursor_2.dump create mode 100644 src/testdir/dumps/Test_sign_cursor_3.dump diff --git a/src/sign.c b/src/sign.c index 935ec3c74d..9d8d7ac8a3 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_01.dump deleted file mode 100644 index 9ca4481935..0000000000 --- a/src/testdir/dumps/Test_sign_cursor_01.dump +++ /dev/null @@ -1,6 +0,0 @@ -| +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&@56|2|,|1| @10|A|l@1| diff --git a/src/testdir/dumps/Test_sign_cursor_02.dump b/src/testdir/dumps/Test_sign_cursor_02.dump deleted file mode 100644 index 92643c3276..0000000000 --- a/src/testdir/dumps/Test_sign_cursor_02.dump +++ /dev/null @@ -1,6 +0,0 @@ -|x+0&#ffffff0@74 ->m@3| @70 -|y@3| @70 -|~+0#4040ff13&| @73 -|~| @73 -|:+0#0000000&|s|i|g|n| |u|n|p|l|a|c|e| |1|0| @40|2|,|1| @10|A|l@1| diff --git a/src/testdir/dumps/Test_sign_cursor_1.dump b/src/testdir/dumps/Test_sign_cursor_1.dump new file mode 100644 index 0000000000..9ca4481935 --- /dev/null +++ b/src/testdir/dumps/Test_sign_cursor_1.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&@56|2|,|1| @10|A|l@1| 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 0000000000..2d10a2ced5 --- /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_3.dump b/src/testdir/dumps/Test_sign_cursor_3.dump new file mode 100644 index 0000000000..92643c3276 --- /dev/null +++ b/src/testdir/dumps/Test_sign_cursor_3.dump @@ -0,0 +1,6 @@ +|x+0&#ffffff0@74 +>m@3| @70 +|y@3| @70 +|~+0#4040ff13&| @73 +|~| @73 +|:+0#0000000&|s|i|g|n| |u|n|p|l|a|c|e| |1|0| @40|2|,|1| @10|A|l@1| diff --git a/src/testdir/test_signs.vim b/src/testdir/test_signs.vim index 862199cd3c..d480671d27 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=-)\") + call VerifyScreenDump(buf, 'Test_sign_cursor_2', {}) " update cursor position calculation call term_sendkeys(buf, "lh") call term_sendkeys(buf, ":sign unplace 10\") - 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 f15d748dc5..e06dfc6d1c 100644 --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 108, /**/ 107, /**/ -- cgit v1.2.3