forked from aniani/vim
patch 8.1.1550: when a popup has left padding text may be cut off
Problem: When a popup has left padding text may be cut off. Solution: Add the border and padding when computing the size.
This commit is contained in:
@@ -588,7 +588,7 @@ popup_adjust_position(win_T *wp)
|
|||||||
// When centering or right aligned, use maximum width.
|
// When centering or right aligned, use maximum width.
|
||||||
// When left aligned use the space available, but shift to the left when we
|
// When left aligned use the space available, but shift to the left when we
|
||||||
// hit the right of the screen.
|
// hit the right of the screen.
|
||||||
maxwidth = Columns - wp->w_wincol;
|
maxwidth = Columns - wp->w_wincol - left_extra;
|
||||||
if (wp->w_maxwidth > 0 && maxwidth > wp->w_maxwidth)
|
if (wp->w_maxwidth > 0 && maxwidth > wp->w_maxwidth)
|
||||||
{
|
{
|
||||||
allow_adjust_left = FALSE;
|
allow_adjust_left = FALSE;
|
||||||
@@ -622,11 +622,12 @@ popup_adjust_position(win_T *wp)
|
|||||||
|| wp->w_popup_pos == POPPOS_BOTLEFT))
|
|| wp->w_popup_pos == POPPOS_BOTLEFT))
|
||||||
{
|
{
|
||||||
// adjust leftwise to fit text on screen
|
// adjust leftwise to fit text on screen
|
||||||
int shift_by = ( len - maxwidth );
|
int shift_by = len - maxwidth;
|
||||||
|
|
||||||
if ( shift_by > wp->w_wincol )
|
if (shift_by > wp->w_wincol)
|
||||||
{
|
{
|
||||||
int truncate_shift = shift_by - wp->w_wincol;
|
int truncate_shift = shift_by - wp->w_wincol;
|
||||||
|
|
||||||
len -= truncate_shift;
|
len -= truncate_shift;
|
||||||
shift_by -= truncate_shift;
|
shift_by -= truncate_shift;
|
||||||
}
|
}
|
||||||
|
@@ -5,11 +5,11 @@
|
|||||||
|5| @40||+0#0000001#ffd7ff255| @11||| +0#0000000#ffffff0@18
|
|5| @40||+0#0000001#ffd7ff255| @11||| +0#0000000#ffffff0@18
|
||||||
|6| |++0#0000001#ffd7ff255|-@8| +0#0000000#ffffff0@9| +0#0000001#ffd7ff255@14| +0#0000000#ffffff0@4|++0#0000001#ffd7ff255|-@11|+| +0#0000000#ffffff0@18
|
|6| |++0#0000001#ffd7ff255|-@8| +0#0000000#ffffff0@9| +0#0000001#ffd7ff255@14| +0#0000000#ffffff0@4|++0#0000001#ffd7ff255|-@11|+| +0#0000000#ffffff0@18
|
||||||
|7| ||+0#0000001#ffd7ff255|b|o|r|d|e|r| |T|L| +0#0000000#ffffff0@9| +0#0000001#ffd7ff255@3|p|a|d@1|i|n|g|s| @2| +0#0000000#ffffff0@37
|
|7| ||+0#0000001#ffd7ff255|b|o|r|d|e|r| |T|L| +0#0000000#ffffff0@9| +0#0000001#ffd7ff255@3|p|a|d@1|i|n|g|s| @2| +0#0000000#ffffff0@37
|
||||||
|8| @20| +0#0000001#ffd7ff255@14| +0#0000000#ffffff0@37
|
|8| @20| +0#0000001#ffd7ff255@14| +0#0000000#ffffff0@16||+0#0000001#ffd7ff255| @2|w|r|a|p@1|e|d| |l|o|n|g|e|r| |t|e
|
||||||
|9| @20| +0#0000001#ffd7ff255@14| +0#0000000#ffffff0@37
|
|9+0#0000000#ffffff0| @20| +0#0000001#ffd7ff255@14| +0#0000000#ffffff0@16||+0#0000001#ffd7ff255| @2|x|t| @14
|
||||||
|1|0| @72
|
|1+0#0000000#ffffff0|0| @72
|
||||||
|1@1| @72
|
|1@1| @50||+0#0000001#ffd7ff255| @2|r|i|g|h|t| |a|l|i|g|n|e|d| |t|e|x|t
|
||||||
|1|2| @72
|
|1+0#0000000#ffffff0|2| @72
|
||||||
|1|3| @72
|
|1|3| @72
|
||||||
|1|4| @72
|
|1|4| @72
|
||||||
@57|1|,|1| @10|T|o|p|
|
@57|1|,|1| @10|T|o|p|
|
||||||
|
@@ -5,11 +5,11 @@
|
|||||||
|5| @40|║+0#0000001#ffd7ff255| @11|║| +0#0000000#ffffff0@18
|
|5| @40|║+0#0000001#ffd7ff255| @11|║| +0#0000000#ffffff0@18
|
||||||
|6| |╔+0#0000001#ffd7ff255|═@8| +0#0000000#ffffff0@9| +0#0000001#ffd7ff255@14| +0#0000000#ffffff0@4|╚+0#0000001#ffd7ff255|═@11|╝| +0#0000000#ffffff0@18
|
|6| |╔+0#0000001#ffd7ff255|═@8| +0#0000000#ffffff0@9| +0#0000001#ffd7ff255@14| +0#0000000#ffffff0@4|╚+0#0000001#ffd7ff255|═@11|╝| +0#0000000#ffffff0@18
|
||||||
|7| |║+0#0000001#ffd7ff255|b|o|r|d|e|r| |T|L| +0#0000000#ffffff0@9| +0#0000001#ffd7ff255@3|p|a|d@1|i|n|g|s| @2| +0#0000000#ffffff0@37
|
|7| |║+0#0000001#ffd7ff255|b|o|r|d|e|r| |T|L| +0#0000000#ffffff0@9| +0#0000001#ffd7ff255@3|p|a|d@1|i|n|g|s| @2| +0#0000000#ffffff0@37
|
||||||
|8| @20| +0#0000001#ffd7ff255@14| +0#0000000#ffffff0@37
|
|8| @20| +0#0000001#ffd7ff255@14| +0#0000000#ffffff0@16|║+0#0000001#ffd7ff255| @2|w|r|a|p@1|e|d| |l|o|n|g|e|r| |t|e
|
||||||
|9| @20| +0#0000001#ffd7ff255@14| +0#0000000#ffffff0@37
|
|9+0#0000000#ffffff0| @20| +0#0000001#ffd7ff255@14| +0#0000000#ffffff0@16|║+0#0000001#ffd7ff255| @2|x|t| @14
|
||||||
|1|0| @72
|
|1+0#0000000#ffffff0|0| @72
|
||||||
|1@1| @72
|
|1@1| @50|║+0#0000001#ffd7ff255| @2|r|i|g|h|t| |a|l|i|g|n|e|d| |t|e|x|t
|
||||||
|1|2| @72
|
|1+0#0000000#ffffff0|2| @72
|
||||||
|1|3| @72
|
|1|3| @72
|
||||||
|1|4| @72
|
|1|4| @72
|
||||||
@57|1|,|1| @10|T|o|p|
|
@57|1|,|1| @10|T|o|p|
|
||||||
|
@@ -87,6 +87,8 @@ func Test_popup_with_border_and_padding()
|
|||||||
\ "call popup_create('hello both', {'line': 2, 'col': 43, 'border': [], 'padding': []})",
|
\ "call popup_create('hello both', {'line': 2, 'col': 43, 'border': [], 'padding': []})",
|
||||||
\ "call popup_create('border TL', {'line': 6, 'col': 3, 'border': [1, 0, 0, 4]})",
|
\ "call popup_create('border TL', {'line': 6, 'col': 3, 'border': [1, 0, 0, 4]})",
|
||||||
\ "call popup_create('paddings', {'line': 6, 'col': 23, 'padding': [1, 3, 2, 4]})",
|
\ "call popup_create('paddings', {'line': 6, 'col': 23, 'padding': [1, 3, 2, 4]})",
|
||||||
|
\ "call popup_create('wrapped longer text', {'line': 8, 'col': 55, 'padding': [0, 3, 0, 3], 'border': [0, 1, 0, 1]})",
|
||||||
|
\ "call popup_create('right aligned text', {'line': 11, 'col': 56, 'wrap': 0, 'padding': [0, 3, 0, 3], 'border': [0, 1, 0, 1]})",
|
||||||
\], 'XtestPopupBorder')
|
\], 'XtestPopupBorder')
|
||||||
let buf = RunVimInTerminal('-S XtestPopupBorder', {'rows': 15})
|
let buf = RunVimInTerminal('-S XtestPopupBorder', {'rows': 15})
|
||||||
call VerifyScreenDump(buf, 'Test_popupwin_2' .. iter, {})
|
call VerifyScreenDump(buf, 'Test_popupwin_2' .. iter, {})
|
||||||
|
@@ -777,6 +777,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1550,
|
||||||
/**/
|
/**/
|
||||||
1549,
|
1549,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user