Problem: Padding not drawn properly for popup window with title.
Solution: Draw the padding below the title. (closes #7460)
}
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.
--- /dev/null
+>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|
--- /dev/null
+>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|
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')
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 2132,
/**/
2131,
/**/