changeset 23041:139573353c6d v8.2.2067

patch 8.2.2067: cursor position in popup terminal is wrong Commit: https://github.com/vim/vim/commit/f5452691ba30e33b38c5b06c51ba40b58457d5d8 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Nov 28 21:56:06 2020 +0100 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.
author Bram Moolenaar <Bram@vim.org>
date Sat, 28 Nov 2020 22:00:04 +0100
parents a549706c4024
children c720ff60017a
files src/terminal.c src/testdir/test_popupwin.vim src/version.c
diffstat 3 files changed, 15 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -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
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -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'))
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2067,
+/**/
     2066,
 /**/
     2065,