diff src/window.c @ 16874:da5f5836e90c v8.1.1438

patch 8.1.1438: some commands cause trouble in a popup window commit https://github.com/vim/vim/commit/815b76bff618c07226653e11f29c4d3c5640b63a Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jun 1 14:15:52 2019 +0200 patch 8.1.1438: some commands cause trouble in a popup window Problem: Some commands cause trouble in a popup window. Solution: Add NOT_IN_POPUP_WINDOW.
author Bram Moolenaar <Bram@vim.org>
date Sat, 01 Jun 2019 14:30:06 +0200
parents 2b00163053cd
children 998603a243d7
line wrap: on
line diff
--- a/src/window.c
+++ b/src/window.c
@@ -87,7 +87,8 @@ do_window(
 #endif
     char_u	cbuf[40];
 
-    Prenum1 = Prenum == 0 ? 1 : Prenum;
+    if (NOT_IN_POPUP_WINDOW)
+	return;
 
 #ifdef FEAT_CMDWIN
 # define CHECK_CMDWIN \
@@ -102,6 +103,8 @@ do_window(
 # define CHECK_CMDWIN do { /**/ } while (0)
 #endif
 
+    Prenum1 = Prenum == 0 ? 1 : Prenum;
+
     switch (nchar)
     {
 /* split current window in two parts, horizontally */
@@ -732,6 +735,9 @@ cmd_with_count(
     int
 win_split(int size, int flags)
 {
+    if (NOT_IN_POPUP_WINDOW)
+	return FAIL;
+
     /* When the ":tab" modifier was used open a new tab page instead. */
     if (may_open_tabpage() == OK)
 	return OK;
@@ -1509,7 +1515,9 @@ win_exchange(long Prenum)
     win_T	*wp2;
     int		temp;
 
-    if (ONE_WINDOW)	    /* just one window */
+    if (NOT_IN_POPUP_WINDOW)
+	return;
+    if (ONE_WINDOW)	    // just one window
     {
 	beep_flush();
 	return;
@@ -2363,6 +2371,9 @@ win_close(win_T *win, int free_buf)
     tabpage_T   *prev_curtab = curtab;
     frame_T	*win_frame = win->w_frame->fr_parent;
 
+    if (NOT_IN_POPUP_WINDOW)
+	return FAIL;
+
     if (last_window())
     {
 	emsg(_("E444: Cannot close last window"));
@@ -4221,6 +4232,8 @@ win_goto(win_T *wp)
     win_T	*owp = curwin;
 #endif
 
+    if (NOT_IN_POPUP_WINDOW)
+	return;
     if (text_locked())
     {
 	beep_flush();