diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-12-12 18:18:06 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-12-12 18:18:06 +0100 |
commit | 3ae50c775c00b098cdfc9e90b17c4cc07f00e08d (patch) | |
tree | acfbf0e1eed648c5656517dea61bfa941877d591 | |
parent | 709664cca0b59b69caa1ed40ebfcf00b2c672693 (diff) | |
download | vim-git-3ae50c775c00b098cdfc9e90b17c4cc07f00e08d.tar.gz |
patch 8.2.2132: padding not drawn properly for popup window with titlev8.2.2132
Problem: Padding not drawn properly for popup window with title.
Solution: Draw the padding below the title. (closes #7460)
-rw-r--r-- | src/popupwin.c | 15 | ||||
-rw-r--r-- | src/testdir/dumps/Test_popupwin_longtitle_3.dump | 10 | ||||
-rw-r--r-- | src/testdir/dumps/Test_popupwin_longtitle_4.dump | 10 | ||||
-rw-r--r-- | src/testdir/test_popupwin.vim | 10 | ||||
-rw-r--r-- | src/version.c | 2 |
5 files changed, 39 insertions, 8 deletions
diff --git a/src/popupwin.c b/src/popupwin.c index cfd2050d3..13a455d4e 100644 --- a/src/popupwin.c +++ b/src/popupwin.c @@ -3868,20 +3868,19 @@ update_popups(void (*win_update)(win_T *wp)) } if (top_padding > 0) { - // top padding; do not draw over the title row = wp->w_winrow + wp->w_popup_border[0]; - if (title_len > 0) + if (title_len > 0 && row == wp->w_winrow) { - screen_fill(row, row + top_padding, padcol, title_wincol, + // top padding and no border; do not draw over the title + screen_fill(row, row + 1, padcol, title_wincol, ' ', ' ', popup_attr); - screen_fill(row, row + top_padding, title_wincol + title_len, + screen_fill(row, row + 1, title_wincol + title_len, padendcol, ' ', ' ', popup_attr); + row += 1; + top_padding -= 1; } - else - { - screen_fill(row, row + top_padding, padcol, padendcol, + screen_fill(row, row + top_padding, padcol, padendcol, ' ', ' ', popup_attr); - } } // Compute scrollbar thumb position and size. diff --git a/src/testdir/dumps/Test_popupwin_longtitle_3.dump b/src/testdir/dumps/Test_popupwin_longtitle_3.dump new file mode 100644 index 000000000..b1e67c22c --- /dev/null +++ b/src/testdir/dumps/Test_popupwin_longtitle_3.dump @@ -0,0 +1,10 @@ +>1+0&#ffffff0| @73 +|2| @73 +|3| @27| +0#0000001#ffd7ff255|T|i|t|l|e| @9| +0#0000000#ffffff0@29 +|4| @27| +0#0000001#ffd7ff255@15| +0#0000000#ffffff0@29 +|5| @27| +0#0000001#ffd7ff255@1|a@2| @10| +0#0000000#ffffff0@29 +|6| @27| +0#0000001#ffd7ff255@1|b@2| @10| +0#0000000#ffffff0@29 +|7| @27| +0#0000001#ffd7ff255@15| +0#0000000#ffffff0@29 +|8| @27| +0#0000001#ffd7ff255@15| +0#0000000#ffffff0@29 +|9| @73 +|:| @55|1|,|1| @10|T|o|p| diff --git a/src/testdir/dumps/Test_popupwin_longtitle_4.dump b/src/testdir/dumps/Test_popupwin_longtitle_4.dump new file mode 100644 index 000000000..02ae4cc36 --- /dev/null +++ b/src/testdir/dumps/Test_popupwin_longtitle_4.dump @@ -0,0 +1,10 @@ +>1+0&#ffffff0| @73 +|2| @26|╔+0#0000001#ffd7ff255|T|i|t|l|e|═@10|╗| +0#0000000#ffffff0@28 +|3| @26|║+0#0000001#ffd7ff255| @15|║| +0#0000000#ffffff0@28 +|4| @26|║+0#0000001#ffd7ff255| @15|║| +0#0000000#ffffff0@28 +|5| @26|║+0#0000001#ffd7ff255| @1|a@2| @10|║| +0#0000000#ffffff0@28 +|6| @26|║+0#0000001#ffd7ff255| @1|b@2| @10|║| +0#0000000#ffffff0@28 +|7| @26|║+0#0000001#ffd7ff255| @15|║| +0#0000000#ffffff0@28 +|8| @26|║+0#0000001#ffd7ff255| @15|║| +0#0000000#ffffff0@28 +|9| @26|╚+0#0000001#ffd7ff255|═@15|╝| +0#0000000#ffffff0@28 +|:| @55|1|,|1| @10|T|o|p| diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim index 3f13b26a1..cf9536f5e 100644 --- a/src/testdir/test_popupwin.vim +++ b/src/testdir/test_popupwin.vim @@ -1766,6 +1766,16 @@ func Test_popup_title() call term_sendkeys(buf, ":\<CR>") call VerifyScreenDump(buf, 'Test_popupwin_longtitle_2', {}) + call term_sendkeys(buf, ":call popup_clear()\<CR>") + call term_sendkeys(buf, ":call popup_create(['aaa', 'bbb'], #{title: 'Title', minwidth: 12, padding: [2, 2, 2, 2]})\<CR>") + call term_sendkeys(buf, ":\<CR>") + call VerifyScreenDump(buf, 'Test_popupwin_longtitle_3', {}) + + call term_sendkeys(buf, ":call popup_clear()\<CR>") + call term_sendkeys(buf, ":call popup_create(['aaa', 'bbb'], #{title: 'Title', minwidth: 12, border: [], padding: [2, 2, 2, 2]})\<CR>") + call term_sendkeys(buf, ":\<CR>") + call VerifyScreenDump(buf, 'Test_popupwin_longtitle_4', {}) + " clean up call StopVimInTerminal(buf) call delete('XtestPopupTitle') diff --git a/src/version.c b/src/version.c index e4c3c6721..5bc5f5535 100644 --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2132, +/**/ 2131, /**/ 2130, |