1
0
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:
Bram Moolenaar
2020-11-28 21:56:06 +01:00
parent ce2c5444e2
commit f5452691ba
3 changed files with 15 additions and 7 deletions

View File

@@ -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

View File

@@ -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'))

View File

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