forked from aniani/vim
patch 8.2.2067: cursor position in popup terminal is wrong
Problem: Cursor position in popup terminal is wrong. Solution: Don't check the flags.
This commit is contained in:
@@ -2207,10 +2207,8 @@ position_cursor(win_T *wp, VTermPos *pos)
|
||||
#ifdef FEAT_PROP_POPUP
|
||||
if (popup_is_popup(wp))
|
||||
{
|
||||
if ((wp->w_flags & WFLAG_WROW_OFF_ADDED) == 0)
|
||||
wp->w_wrow += popup_top_extra(wp);
|
||||
if ((wp->w_flags & WFLAG_WCOL_OFF_ADDED) == 0)
|
||||
wp->w_wcol += popup_left_extra(wp);
|
||||
wp->w_wrow += popup_top_extra(wp);
|
||||
wp->w_wcol += popup_left_extra(wp);
|
||||
wp->w_flags |= WFLAG_WCOL_OFF_ADDED | WFLAG_WROW_OFF_ADDED;
|
||||
}
|
||||
else
|
||||
|
@@ -2662,10 +2662,18 @@ func Test_popupwin_terminal_buffer()
|
||||
help
|
||||
|
||||
let termbuf = term_start(&shell, #{hidden: 1})
|
||||
let winid = popup_create(termbuf, #{minwidth: 40, minheight: 10})
|
||||
" Wait for shell to start
|
||||
let winid = popup_create(termbuf, #{minwidth: 40, minheight: 10, border: []})
|
||||
" Wait for shell to start and show a prompt
|
||||
call WaitForAssert({-> assert_equal("run", job_status(term_getjob(termbuf)))})
|
||||
sleep 100m
|
||||
sleep 20m
|
||||
|
||||
" When typing a character, the cursor is after it.
|
||||
call feedkeys("x", 'xt')
|
||||
sleep 10m
|
||||
redraw
|
||||
call WaitForAssert({ -> assert_equal('x', screenstring(screenrow(), screencol() - 1))})
|
||||
call feedkeys("\<BS>", 'xt')
|
||||
|
||||
" Check this doesn't crash
|
||||
call assert_equal(winnr(), winnr('j'))
|
||||
call assert_equal(winnr(), winnr('k'))
|
||||
|
@@ -750,6 +750,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
2067,
|
||||
/**/
|
||||
2066,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user