Mercurial > vim
changeset 20375:b790d00d5ccb v8.2.0743
patch 8.2.0743: can move to another buffer from a terminal in popup window
Commit: https://github.com/vim/vim/commit/5aed0ccb965dbad4b60f4c77c9c4455a9379e73c
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue May 12 22:02:21 2020 +0200
patch 8.2.0743: can move to another buffer from a terminal in popup window
Problem: Can move to another buffer from a terminal in popup window.
Solution: Do not allow "gf" or editing a file. (closes https://github.com/vim/vim/issues/6072)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 12 May 2020 22:15:04 +0200 |
parents | 5e54d73063b8 |
children | daf902b22ec0 |
files | src/ex_cmds.c src/normal.c src/testdir/test_popupwin.vim src/version.c |
diffstat | 4 files changed, 19 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ex_cmds.c +++ b/src/ex_cmds.c @@ -2484,6 +2484,11 @@ do_ecmd( int did_inc_redrawing_disabled = FALSE; long *so_ptr = curwin->w_p_so >= 0 ? &curwin->w_p_so : &p_so; +#ifdef FEAT_PROP_POPUP + if (ERROR_IF_TERM_POPUP_WINDOW) + return FAIL; +#endif + if (eap != NULL) command = eap->do_ecmd_cmd; set_bufref(&old_curbuf, curbuf);
--- a/src/normal.c +++ b/src/normal.c @@ -4169,6 +4169,10 @@ nv_gotofile(cmdarg_T *cap) clearop(cap->oap); return; } +#ifdef FEAT_PROP_POPUP + if (ERROR_IF_TERM_POPUP_WINDOW) + return; +#endif ptr = grab_file_name(cap->count1, &lnum);
--- a/src/testdir/test_popupwin.vim +++ b/src/testdir/test_popupwin.vim @@ -2425,8 +2425,16 @@ func Test_popupwin_terminal_buffer() call assert_equal(winnr(), winnr('k')) call assert_equal(winnr(), winnr('h')) call assert_equal(winnr(), winnr('l')) + " Cannot quit while job is running call assert_fails('call feedkeys("\<C-W>:quit\<CR>", "xt")', 'E948:') + + " Cannot enter Terminal-Normal mode. + call feedkeys("xxx\<C-W>N", 'xt') + call assert_fails('call feedkeys("gf", "xt")', 'E863:') + call feedkeys("a\<C-U>", 'xt') + + " Exiting shell closes popup window call feedkeys("exit\<CR>", 'xt') " Wait for shell to exit sleep 100m