patch 8.2.1783: try-catch test fails

Problem:    Try-catch test fails.
Solution:   Don't call win_enter(), only call enterering_window().
diff --git a/src/autocmd.c b/src/autocmd.c
index 4c2b705..57b5674 100644
--- a/src/autocmd.c
+++ b/src/autocmd.c
@@ -1533,18 +1533,22 @@
 	unblock_autocmds();
 
 	if (win_valid(aco->save_curwin))
-	    win_enter(aco->save_curwin, TRUE);
+	    curwin = aco->save_curwin;
 	else
 	    // Hmm, original window disappeared.  Just use the first one.
 	    curwin = firstwin;
+	curbuf = curwin->w_buffer;
+#ifdef FEAT_JOB_CHANNEL
+	// May need to restore insert mode for a prompt buffer.
+	entering_window(curwin);
+#endif
+
 	if (win_valid(aco->save_prevwin))
 	    prevwin = aco->save_prevwin;
 #ifdef FEAT_EVAL
 	vars_clear(&aucmd_win->w_vars->dv_hashtab);  // free all w: variables
 	hash_init(&aucmd_win->w_vars->dv_hashtab);   // re-use the hashtab
 #endif
-	curbuf = curwin->w_buffer;
-
 	vim_free(globaldir);
 	globaldir = aco->globaldir;
 
diff --git a/src/proto/window.pro b/src/proto/window.pro
index 4c9bddd..24ab0ec 100644
--- a/src/proto/window.pro
+++ b/src/proto/window.pro
@@ -10,6 +10,7 @@
 int make_windows(int count, int vertical);
 void win_move_after(win_T *win1, win_T *win2);
 void win_equal(win_T *next_curwin, int current, int dir);
+void entering_window(win_T *win);
 void close_windows(buf_T *buf, int keep_curwin);
 int one_window(void);
 int win_close(win_T *win, int free_buf);
diff --git a/src/testdir/runtest.vim b/src/testdir/runtest.vim
index 3ff8c67..08b1f8e 100644
--- a/src/testdir/runtest.vim
+++ b/src/testdir/runtest.vim
@@ -227,7 +227,12 @@
 
   " Close any extra tab pages and windows and make the current one not modified.
   while tabpagenr('$') > 1
+    let winid = win_getid()
     quit!
+    if winid == win_getid()
+      echoerr 'Could not quit window'
+      break
+    endif
   endwhile
 
   while 1
diff --git a/src/version.c b/src/version.c
index 9619a33..d2d285f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1783,
+/**/
     1782,
 /**/
     1781,
diff --git a/src/window.c b/src/window.c
index 64017bf..034a0d9 100644
--- a/src/window.c
+++ b/src/window.c
@@ -2227,7 +2227,7 @@
     }
 }
 
-    static void
+    void
 entering_window(win_T *win)
 {
     // Only matters for a prompt window.