Mercurial > vim
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'))