From 5aed0ccb965dbad4b60f4c77c9c4455a9379e73c Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Tue, 12 May 2020 22:02:21 +0200 Subject: [PATCH] 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 #6072) --- src/ex_cmds.c | 5 +++++ src/normal.c | 4 ++++ src/testdir/test_popupwin.vim | 8 ++++++++ src/version.c | 2 ++ 4 files changed, 19 insertions(+) diff --git a/src/ex_cmds.c b/src/ex_cmds.c index f38bdacb6..9c55de3ad 100644 --- 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); diff --git a/src/normal.c b/src/normal.c index 7dd74a40b..690bb0081 100644 --- 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); diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim index 99b445825..5eecb193c 100644 --- 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("\:quit\", "xt")', 'E948:') + + " Cannot enter Terminal-Normal mode. + call feedkeys("xxx\N", 'xt') + call assert_fails('call feedkeys("gf", "xt")', 'E863:') + call feedkeys("a\", 'xt') + + " Exiting shell closes popup window call feedkeys("exit\", 'xt') " Wait for shell to exit sleep 100m diff --git a/src/version.c b/src/version.c index 41f857f63..1ce64b762 100644 --- a/src/version.c +++ b/src/version.c @@ -746,6 +746,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 743, /**/ 742, /**/ -- 2.40.0