diff src/window.c @ 19275:2142fb624658 v8.2.0196

patch 8.2.0196: blocking commands for a finished job in a popup window Commit: https://github.com/vim/vim/commit/d98c0b63abd7b0e61a383669474abe96044615af Author: Bram Moolenaar <Bram@vim.org> Date: Sun Feb 2 15:25:16 2020 +0100 patch 8.2.0196: blocking commands for a finished job in a popup window Problem: Blocking commands for a finished job in a popup window. Solution: Do not block commands if the job has finished. Adjust test.
author Bram Moolenaar <Bram@vim.org>
date Sun, 02 Feb 2020 15:30:04 +0100
parents ebeeb4b4a1fa
children 1d6bc6b31c2e
line wrap: on
line diff
--- a/src/window.c
+++ b/src/window.c
@@ -2441,6 +2441,11 @@ win_close(win_T *win, int free_buf)
     int		had_diffmode = win->w_p_diff;
 #endif
 
+#if defined(FEAT_TERMINAL) && defined(FEAT_PROP_POPUP)
+    // Can close a popup window with a terminal if the job has finished.
+    if (may_close_term_popup() == OK)
+	return OK;
+#endif
     if (ERROR_IF_ANY_POPUP_WINDOW)
 	return FAIL;
 
@@ -6439,6 +6444,12 @@ only_one_window(void)
     int		count = 0;
     win_T	*wp;
 
+#if defined(FEAT_PROP_POPUP)
+    // If the current window is a popup then there always is another window.
+    if (popup_is_popup(curwin))
+	return FALSE;
+#endif
+
     // If there is another tab page there always is another window.
     if (first_tabpage->tp_next != NULL)
 	return FALSE;