summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-05-12 22:02:21 +0200
committerBram Moolenaar <Bram@vim.org>2020-05-12 22:02:21 +0200
commit5aed0ccb965dbad4b60f4c77c9c4455a9379e73c (patch)
tree8347858e800403f8fa07f1fd7b7993b5f18dac4b
parent48a687148c4649f6f55b36a1f4111041e7207235 (diff)
patch 8.2.0743: can move to another buffer from a terminal in popup windowv8.2.0743
Problem: Can move to another buffer from a terminal in popup window. Solution: Do not allow "gf" or editing a file. (closes #6072)
-rw-r--r--src/ex_cmds.c5
-rw-r--r--src/normal.c4
-rw-r--r--src/testdir/test_popupwin.vim8
-rw-r--r--src/version.c2
4 files changed, 19 insertions, 0 deletions
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index f38bdacb63..9c55de3adf 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 7dd74a40bf..690bb00819 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 99b4458250..5eecb193c1 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("\<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
diff --git a/src/version.c b/src/version.c
index 41f857f638..1ce64b7627 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 743,
+/**/
742,
/**/
741,