diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-11-28 21:56:06 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-11-28 21:56:06 +0100 |
commit | f5452691ba30e33b38c5b06c51ba40b58457d5d8 (patch) | |
tree | 7cf03c30dda8de02049a1aa74c1b7f026cf096c7 /src | |
parent | ce2c5444e2556d8d156ab447d6d196f9ecd11ddc (diff) | |
download | vim-git-f5452691ba30e33b38c5b06c51ba40b58457d5d8.tar.gz |
patch 8.2.2067: cursor position in popup terminal is wrongv8.2.2067
Problem: Cursor position in popup terminal is wrong.
Solution: Don't check the flags.
Diffstat (limited to 'src')
-rw-r--r-- | src/terminal.c | 6 | ||||
-rw-r--r-- | src/testdir/test_popupwin.vim | 14 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 15 insertions, 7 deletions
diff --git a/src/terminal.c b/src/terminal.c index 644cddab7..9729eac8f 100644 --- 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 diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim index 45e35030d..42542a35c 100644 --- 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')) diff --git a/src/version.c b/src/version.c index b94f0df80..e92d754cf 100644 --- 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, |