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.
diff --git a/src/terminal.c b/src/terminal.c
index 644cdda..9729eac 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -2207,10 +2207,8 @@
#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
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
index 45e3503..42542a3 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -2662,10 +2662,18 @@
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'))
diff --git a/src/version.c b/src/version.c
index b94f0df..e92d754 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2067,
+/**/
2066,
/**/
2065,