patch 8.2.0359: popup_atcursor() may hang

Problem:    popup_atcursor() may hang. (Yasuhiro Matsumoto)
Solution:   Take the decoration into account. (closes #5728)
This commit is contained in:
Bram Moolenaar
2020-03-06 21:43:17 +01:00
parent bd7206e02c
commit ba2920fe97
3 changed files with 18 additions and 2 deletions

View File

@ -1232,8 +1232,9 @@ popup_adjust_position(win_T *wp)
|| wp->w_popup_pos == POPPOS_BOTLEFT))
{
wp->w_wincol = wantcol - 1;
if (wp->w_wincol >= Columns - 1)
wp->w_wincol = Columns - 1;
// Need to see at least one character after the decoration.
if (wp->w_wincol > Columns - left_extra - 1)
wp->w_wincol = Columns - left_extra - 1;
}
}

View File

@ -3293,4 +3293,17 @@ func Test_popupwin_filter_input_multibyte()
unlet g:bytes
endfunc
func Test_popupwin_atcursor_far_right()
new
" this was getting stuck
set signcolumn=yes
call setline(1, repeat('=', &columns))
normal! ggg$
call popup_atcursor(repeat('x', 500), #{moved: 'any', border: []})
bwipe!
set signcolumn&
endfunc
" vim: shiftwidth=2 sts=2

View File

@ -738,6 +738,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
359,
/**/
358,
/**/