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:
@ -1232,8 +1232,9 @@ popup_adjust_position(win_T *wp)
|
|||||||
|| wp->w_popup_pos == POPPOS_BOTLEFT))
|
|| wp->w_popup_pos == POPPOS_BOTLEFT))
|
||||||
{
|
{
|
||||||
wp->w_wincol = wantcol - 1;
|
wp->w_wincol = wantcol - 1;
|
||||||
if (wp->w_wincol >= Columns - 1)
|
// Need to see at least one character after the decoration.
|
||||||
wp->w_wincol = Columns - 1;
|
if (wp->w_wincol > Columns - left_extra - 1)
|
||||||
|
wp->w_wincol = Columns - left_extra - 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -3293,4 +3293,17 @@ func Test_popupwin_filter_input_multibyte()
|
|||||||
unlet g:bytes
|
unlet g:bytes
|
||||||
endfunc
|
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
|
" vim: shiftwidth=2 sts=2
|
||||||
|
|||||||
@ -738,6 +738,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 */
|
||||||
|
/**/
|
||||||
|
359,
|
||||||
/**/
|
/**/
|
||||||
358,
|
358,
|
||||||
/**/
|
/**/
|
||||||
|
|||||||
Reference in New Issue
Block a user