aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nvim/autocmd.c7
-rw-r--r--src/nvim/testdir/runtest.vim5
-rw-r--r--src/nvim/window.c2
3 files changed, 11 insertions, 3 deletions
diff --git a/src/nvim/autocmd.c b/src/nvim/autocmd.c
index e274d00a77..9044657358 100644
--- a/src/nvim/autocmd.c
+++ b/src/nvim/autocmd.c
@@ -1208,15 +1208,18 @@ win_found:
win_T *const save_curwin = win_find_by_handle(aco->save_curwin_handle);
if (save_curwin != NULL) {
- win_enter(save_curwin, true);
+ curwin = save_curwin;
} else {
// Hmm, original window disappeared. Just use the first one.
curwin = firstwin;
}
+ curbuf = curwin->w_buffer;
+ // May need to restore insert mode for a prompt buffer.
+ entering_window(curwin);
+
prevwin = win_find_by_handle(aco->save_prevwin_handle);
vars_clear(&aucmd_win->w_vars->dv_hashtab); // free all w: variables
hash_init(&aucmd_win->w_vars->dv_hashtab); // re-use the hashtab
- curbuf = curwin->w_buffer;
xfree(globaldir);
globaldir = aco->globaldir;
diff --git a/src/nvim/testdir/runtest.vim b/src/nvim/testdir/runtest.vim
index 49993c03aa..ab047fd2a8 100644
--- a/src/nvim/testdir/runtest.vim
+++ b/src/nvim/testdir/runtest.vim
@@ -197,7 +197,12 @@ func RunTheTest(test)
" 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/nvim/window.c b/src/nvim/window.c
index ddf50b47a7..e0ba4b72f3 100644
--- a/src/nvim/window.c
+++ b/src/nvim/window.c
@@ -2256,7 +2256,7 @@ static void leaving_window(win_T *const win)
}
}
-static void entering_window(win_T *const win)
+void entering_window(win_T *const win)
FUNC_ATTR_NONNULL_ALL
{
// Only matters for a prompt window.