From: Bram Moolenaar Date: Wed, 21 Aug 2019 18:57:20 +0000 (+0200) Subject: patch 8.1.1907: wrong position for info popup with scrollbar on the left X-Git-Tag: v8.1.1907 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fe6e7618b4d05cb91679dbf7ed5983c95ff5b6a2;p=vim patch 8.1.1907: wrong position for info popup with scrollbar on the left Problem: Wrong position for info popup with scrollbar on the left. Solution: Take the scrollbar into account. --- diff --git a/src/popupwin.c b/src/popupwin.c index 482c5a6e1..2bac5c8c9 100644 --- a/src/popupwin.c +++ b/src/popupwin.c @@ -1121,7 +1121,10 @@ popup_adjust_position(win_T *wp) wp->w_has_scrollbar = wp->w_want_scrollbar && (wp->w_topline > 1 || lnum <= wp->w_buffer->b_ml.ml_line_count); if (wp->w_has_scrollbar) + { ++right_extra; + ++extra_width; + } minwidth = wp->w_minwidth; if (wp->w_popup_title != NULL && *wp->w_popup_title != NUL) diff --git a/src/testdir/dumps/Test_popupwin_cursorline_3.dump b/src/testdir/dumps/Test_popupwin_cursorline_3.dump index 478c59d90..5866f4fe6 100644 --- a/src/testdir/dumps/Test_popupwin_cursorline_3.dump +++ b/src/testdir/dumps/Test_popupwin_cursorline_3.dump @@ -1,10 +1,10 @@ > +0&#ffffff0@74 |~+0#4040ff13&| @73 |~| @73 -|~| @32|╔+0#0000001#ffd7ff255|═@5|╗| +0#4040ff13#ffffff0@32 -|~| @32|║+0#0000001#ffd7ff255| |1@2| | +0#0000000#0000001|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@32 -|~| @32|║+0#0000001#ffd7ff255| |2@2| | +0#0000000#a8a8a8255|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@32 -|~| @32|╚+0#0000001#ffd7ff255|═@5|╝| +0#4040ff13#ffffff0@32 +|~| @31|╔+0#0000001#ffd7ff255|═@5|╗| +0#4040ff13#ffffff0@33 +|~| @31|║+0#0000001#ffd7ff255| |1@2| | +0#0000000#0000001|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@33 +|~| @31|║+0#0000001#ffd7ff255| |2@2| | +0#0000000#a8a8a8255|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@33 +|~| @31|╚+0#0000001#ffd7ff255|═@5|╝| +0#4040ff13#ffffff0@33 |~| @73 |~| @73 | +0#0000000&@56|0|,|0|-|1| @8|A|l@1| diff --git a/src/testdir/dumps/Test_popupwin_cursorline_4.dump b/src/testdir/dumps/Test_popupwin_cursorline_4.dump index 85eef4127..6139eb741 100644 --- a/src/testdir/dumps/Test_popupwin_cursorline_4.dump +++ b/src/testdir/dumps/Test_popupwin_cursorline_4.dump @@ -1,10 +1,10 @@ > +0&#ffffff0@74 |~+0#4040ff13&| @73 |~| @73 -|~| @32|╔+0#0000001#ffd7ff255|═@5|╗| +0#4040ff13#ffffff0@32 -|~| @32|║+0#0000001#ffd7ff255| |2@2| | +0#0000000#a8a8a8255|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@32 -|~| @32|║+0#0000001#ffd7ff255| |3@2| | +0#0000000#0000001|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@32 -|~| @32|╚+0#0000001#ffd7ff255|═@5|╝| +0#4040ff13#ffffff0@32 +|~| @31|╔+0#0000001#ffd7ff255|═@5|╗| +0#4040ff13#ffffff0@33 +|~| @31|║+0#0000001#ffd7ff255| |2@2| | +0#0000000#a8a8a8255|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@33 +|~| @31|║+0#0000001#ffd7ff255| |3@2| | +0#0000000#0000001|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@33 +|~| @31|╚+0#0000001#ffd7ff255|═@5|╝| +0#4040ff13#ffffff0@33 |~| @73 |~| @73 | +0#0000000&@56|0|,|0|-|1| @8|A|l@1| diff --git a/src/testdir/dumps/Test_popupwin_cursorline_5.dump b/src/testdir/dumps/Test_popupwin_cursorline_5.dump index 57d24aad8..bd9b2d417 100644 --- a/src/testdir/dumps/Test_popupwin_cursorline_5.dump +++ b/src/testdir/dumps/Test_popupwin_cursorline_5.dump @@ -1,10 +1,10 @@ > +0&#ffffff0@74 |~+0#4040ff13&| @73 |~| @73 -|~| @32|╔+0#0000001#ffd7ff255|═@5|╗| +0#4040ff13#ffffff0@32 -|~| @32|║+0#0000001#ffd7ff255| |1+0&#e0e0e08@2| +0&#ffd7ff255| +0#0000000#0000001|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@32 -|~| @32|║+0#0000001#ffd7ff255| |2@2| | +0#0000000#a8a8a8255|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@32 -|~| @32|╚+0#0000001#ffd7ff255|═@5|╝| +0#4040ff13#ffffff0@32 +|~| @31|╔+0#0000001#ffd7ff255|═@5|╗| +0#4040ff13#ffffff0@33 +|~| @31|║+0#0000001#ffd7ff255| |1+0&#e0e0e08@2| +0&#ffd7ff255| +0#0000000#0000001|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@33 +|~| @31|║+0#0000001#ffd7ff255| |2@2| | +0#0000000#a8a8a8255|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@33 +|~| @31|╚+0#0000001#ffd7ff255|═@5|╝| +0#4040ff13#ffffff0@33 |~| @73 |~| @73 | +0#0000000&@56|0|,|0|-|1| @8|A|l@1| diff --git a/src/testdir/dumps/Test_popupwin_cursorline_6.dump b/src/testdir/dumps/Test_popupwin_cursorline_6.dump index 314c2d1b0..d814edd1a 100644 --- a/src/testdir/dumps/Test_popupwin_cursorline_6.dump +++ b/src/testdir/dumps/Test_popupwin_cursorline_6.dump @@ -1,10 +1,10 @@ > +0&#ffffff0@74 |~+0#4040ff13&| @73 |~| @73 -|~| @32|╔+0#0000001#ffd7ff255|═@5|╗| +0#4040ff13#ffffff0@32 -|~| @32|║+0#0000001#ffd7ff255| |2@2| | +0#0000000#a8a8a8255|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@32 -|~| @32|║+0#0000001#ffd7ff255| |3+0&#e0e0e08@2| +0&#ffd7ff255| +0#0000000#0000001|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@32 -|~| @32|╚+0#0000001#ffd7ff255|═@5|╝| +0#4040ff13#ffffff0@32 +|~| @31|╔+0#0000001#ffd7ff255|═@5|╗| +0#4040ff13#ffffff0@33 +|~| @31|║+0#0000001#ffd7ff255| |2@2| | +0#0000000#a8a8a8255|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@33 +|~| @31|║+0#0000001#ffd7ff255| |3+0&#e0e0e08@2| +0&#ffd7ff255| +0#0000000#0000001|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@33 +|~| @31|╚+0#0000001#ffd7ff255|═@5|╝| +0#4040ff13#ffffff0@33 |~| @73 |~| @73 | +0#0000000&@56|0|,|0|-|1| @8|A|l@1| diff --git a/src/testdir/dumps/Test_popupwin_infopopup_5.dump b/src/testdir/dumps/Test_popupwin_infopopup_5.dump new file mode 100644 index 000000000..fbcebee3e --- /dev/null +++ b/src/testdir/dumps/Test_popupwin_infopopup_5.dump @@ -0,0 +1,14 @@ +|t+0&#ffffff0|e|x|t| |t|e|x|t| |t|e|x|t| |t|e|x|t| |t|e|x|t| |t|e|x|t| |t|e|x|t| |t|e|s|t| |t|e|x|t| |n|o|i|n|f|o> @23 +|~+0#4040ff13&| @42| +0#0000001#ffd7ff255|w|r|d| @4|W| |e|x|t|r|a| |t|e|x|t| | +0#4040ff13#ffffff0@8 +|~| @28|╔+0#0000000#ffff4012|═@11|X| +0#0000001#ffd7ff255|a|n|o|t|w|r|d| |W| |e|x|t|r|a| |t|e|x|t| | +0#4040ff13#ffffff0@8 +|~| @28|║+0#0000000#ffff4012| |l|e|t|s| @5| +0|║+0&#ffff4012| +0#0000001#e0e0e08|n|o|a|w|r|d| @1|W| |e|x|t|r|a| |t|e|x|t| | +0#4040ff13#ffffff0@8 +|~| @28|║+0#0000000#ffff4012| |s|h|o|w| @5| +0|║+0&#ffff4012| +0#0000001#ffd7ff255|t|h|a|t|w|r|d| |W| |e|x|t|r|a| |t|e|x|t| | +0#4040ff13#ffffff0@8 +|~| @28|║+0#0000000#ffff4012| |a| @8| +0|║+0&#ffff4012| +0#4040ff13#ffffff0@30 +|~| @28|║+0#0000000#ffff4012| |s|c|r|o|l@1|b|a|r| | +0&#a8a8a8255|║+0&#ffff4012| +0#4040ff13#ffffff0@30 +|~| @28|╚+0#0000000#ffff4012|═@11|⇲| +0#4040ff13#ffffff0@30 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|-+2#0000000&@1| |U|s|e|r| |d|e|f|i|n|e|d| |c|o|m|p|l|e|t|i|o|n| |(|^|U|^|N|^|P|)| |m+0#00e0003&|a|t|c|h| |3| |o|f| |4| +0#0000000&@26 diff --git a/src/testdir/dumps/Test_popupwin_menu_filter_1.dump b/src/testdir/dumps/Test_popupwin_menu_filter_1.dump index 991ddec0e..b99b8d091 100644 --- a/src/testdir/dumps/Test_popupwin_menu_filter_1.dump +++ b/src/testdir/dumps/Test_popupwin_menu_filter_1.dump @@ -1,10 +1,10 @@ > +0&#ffffff0@74 |~+0#4040ff13&| @73 -|~| @32|╔+0#0000001#ffd7ff255|═@5|╗| +0#4040ff13#ffffff0@32 -|~| @32|║+0#0000001#ffd7ff255| |1@2| | +0#0000000#0000001|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@32 -|~| @32|║+0#0000001#ffd7ff255| |2+0&#e0e0e08@2| +0&#ffd7ff255| +0#0000000#a8a8a8255|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@32 -|~| @32|║+0#0000001#ffd7ff255| |3@2| | +0#0000000#a8a8a8255|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@32 -|~| @32|╚+0#0000001#ffd7ff255|═@5|╝| +0#4040ff13#ffffff0@32 +|~| @31|╔+0#0000001#ffd7ff255|═@5|╗| +0#4040ff13#ffffff0@33 +|~| @31|║+0#0000001#ffd7ff255| |1@2| | +0#0000000#0000001|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@33 +|~| @31|║+0#0000001#ffd7ff255| |2+0&#e0e0e08@2| +0&#ffd7ff255| +0#0000000#a8a8a8255|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@33 +|~| @31|║+0#0000001#ffd7ff255| |3@2| | +0#0000000#a8a8a8255|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@33 +|~| @31|╚+0#0000001#ffd7ff255|═@5|╝| +0#4040ff13#ffffff0@33 |~| @73 |~| @73 | +0#0000000&@56|0|,|0|-|1| @8|A|l@1| diff --git a/src/testdir/dumps/Test_popupwin_menu_filter_2.dump b/src/testdir/dumps/Test_popupwin_menu_filter_2.dump index 3862b92d1..e510f1d65 100644 --- a/src/testdir/dumps/Test_popupwin_menu_filter_2.dump +++ b/src/testdir/dumps/Test_popupwin_menu_filter_2.dump @@ -1,10 +1,10 @@ > +0&#ffffff0@74 |~+0#4040ff13&| @73 -|~| @32|╔+0#0000001#ffd7ff255|═@5|╗| +0#4040ff13#ffffff0@32 -|~| @32|║+0#0000001#ffd7ff255| |1+0&#e0e0e08@2| +0&#ffd7ff255| +0#0000000#0000001|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@32 -|~| @32|║+0#0000001#ffd7ff255| |2@2| | +0#0000000#a8a8a8255|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@32 -|~| @32|║+0#0000001#ffd7ff255| |3@2| | +0#0000000#a8a8a8255|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@32 -|~| @32|╚+0#0000001#ffd7ff255|═@5|╝| +0#4040ff13#ffffff0@32 +|~| @31|╔+0#0000001#ffd7ff255|═@5|╗| +0#4040ff13#ffffff0@33 +|~| @31|║+0#0000001#ffd7ff255| |1+0&#e0e0e08@2| +0&#ffd7ff255| +0#0000000#0000001|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@33 +|~| @31|║+0#0000001#ffd7ff255| |2@2| | +0#0000000#a8a8a8255|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@33 +|~| @31|║+0#0000001#ffd7ff255| |3@2| | +0#0000000#a8a8a8255|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@33 +|~| @31|╚+0#0000001#ffd7ff255|═@5|╝| +0#4040ff13#ffffff0@33 |~| @73 |~| @73 | +0#0000000&@56|0|,|0|-|1| @8|A|l@1| diff --git a/src/testdir/dumps/Test_popupwin_menu_filter_3.dump b/src/testdir/dumps/Test_popupwin_menu_filter_3.dump index af0735cd6..77bec0e48 100644 --- a/src/testdir/dumps/Test_popupwin_menu_filter_3.dump +++ b/src/testdir/dumps/Test_popupwin_menu_filter_3.dump @@ -1,10 +1,10 @@ > +0&#ffffff0@74 |~+0#4040ff13&| @73 -|~| @32|╔+0#0000001#ffd7ff255|═@5|╗| +0#4040ff13#ffffff0@32 -|~| @32|║+0#0000001#ffd7ff255| |7@2| | +0#0000000#a8a8a8255|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@32 -|~| @32|║+0#0000001#ffd7ff255| |8@2| | +0#0000000#a8a8a8255|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@32 -|~| @32|║+0#0000001#ffd7ff255| |9+0&#e0e0e08@2| +0&#ffd7ff255| +0#0000000#0000001|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@32 -|~| @32|╚+0#0000001#ffd7ff255|═@5|╝| +0#4040ff13#ffffff0@32 +|~| @31|╔+0#0000001#ffd7ff255|═@5|╗| +0#4040ff13#ffffff0@33 +|~| @31|║+0#0000001#ffd7ff255| |7@2| | +0#0000000#a8a8a8255|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@33 +|~| @31|║+0#0000001#ffd7ff255| |8@2| | +0#0000000#a8a8a8255|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@33 +|~| @31|║+0#0000001#ffd7ff255| |9+0&#e0e0e08@2| +0&#ffd7ff255| +0#0000000#0000001|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@33 +|~| @31|╚+0#0000001#ffd7ff255|═@5|╝| +0#4040ff13#ffffff0@33 |~| @73 |~| @73 | +0#0000000&@56|0|,|0|-|1| @8|A|l@1| diff --git a/src/testdir/dumps/Test_popupwin_menu_filter_4.dump b/src/testdir/dumps/Test_popupwin_menu_filter_4.dump index 3862b92d1..e510f1d65 100644 --- a/src/testdir/dumps/Test_popupwin_menu_filter_4.dump +++ b/src/testdir/dumps/Test_popupwin_menu_filter_4.dump @@ -1,10 +1,10 @@ > +0&#ffffff0@74 |~+0#4040ff13&| @73 -|~| @32|╔+0#0000001#ffd7ff255|═@5|╗| +0#4040ff13#ffffff0@32 -|~| @32|║+0#0000001#ffd7ff255| |1+0&#e0e0e08@2| +0&#ffd7ff255| +0#0000000#0000001|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@32 -|~| @32|║+0#0000001#ffd7ff255| |2@2| | +0#0000000#a8a8a8255|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@32 -|~| @32|║+0#0000001#ffd7ff255| |3@2| | +0#0000000#a8a8a8255|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@32 -|~| @32|╚+0#0000001#ffd7ff255|═@5|╝| +0#4040ff13#ffffff0@32 +|~| @31|╔+0#0000001#ffd7ff255|═@5|╗| +0#4040ff13#ffffff0@33 +|~| @31|║+0#0000001#ffd7ff255| |1+0&#e0e0e08@2| +0&#ffd7ff255| +0#0000000#0000001|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@33 +|~| @31|║+0#0000001#ffd7ff255| |2@2| | +0#0000000#a8a8a8255|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@33 +|~| @31|║+0#0000001#ffd7ff255| |3@2| | +0#0000000#a8a8a8255|║+0#0000001#ffd7ff255| +0#4040ff13#ffffff0@33 +|~| @31|╚+0#0000001#ffd7ff255|═@5|╝| +0#4040ff13#ffffff0@33 |~| @73 |~| @73 | +0#0000000&@56|0|,|0|-|1| @8|A|l@1| diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim index 6c1ac524a..358da6d12 100644 --- a/src/testdir/test_popupwin.vim +++ b/src/testdir/test_popupwin.vim @@ -2275,6 +2275,11 @@ func Test_popupmenu_info_border() call term_sendkeys(buf, "\\") call VerifyScreenDump(buf, 'Test_popupwin_infopopup_4', {}) + " info on the left with scrollbar + call term_sendkeys(buf, "test text test text\\") + call term_sendkeys(buf, "\\") + call VerifyScreenDump(buf, 'Test_popupwin_infopopup_5', {}) + call StopVimInTerminal(buf) call delete('XtestInfoPopup') endfunc diff --git a/src/version.c b/src/version.c index 6d5f96ef0..41d4d3de4 100644 --- a/src/version.c +++ b/src/version.c @@ -761,6 +761,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1907, /**/ 1906, /**/