changeset 23173:6620b51e2916 v8.2.2132

patch 8.2.2132: padding not drawn properly for popup window with title Commit: https://github.com/vim/vim/commit/3ae50c775c00b098cdfc9e90b17c4cc07f00e08d Author: Bram Moolenaar <Bram@vim.org> Date: Sat Dec 12 18:18:06 2020 +0100 patch 8.2.2132: padding not drawn properly for popup window with title Problem: Padding not drawn properly for popup window with title. Solution: Draw the padding below the title. (closes https://github.com/vim/vim/issues/7460)
author Bram Moolenaar <Bram@vim.org>
date Sat, 12 Dec 2020 18:30:03 +0100
parents 8553841e12cb
children 85cc3693b016
files src/popupwin.c src/testdir/dumps/Test_popupwin_longtitle_3.dump src/testdir/dumps/Test_popupwin_longtitle_4.dump src/testdir/test_popupwin.vim src/version.c
diffstat 5 files changed, 39 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -3868,20 +3868,19 @@ update_popups(void (*win_update)(win_T *
 	}
 	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.
new file mode 100644
--- /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| 
new file mode 100644
--- /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| 
--- 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')
--- 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,