vim-patch:9.1.0033: Insert mode not stopped if closing prompt buffer modifies hidden buffer (#27051)

Problem:  Insert mode not stopped if an autocommand modifies a hidden
          buffer while closing a prompt buffer.
Solution: Don't set b_prompt_insert if stop_insert_mode is already set.
          (zeertzjq)

closes: vim/vim#13872

96958366ad
This commit is contained in:
zeertzjq
2024-01-17 08:18:52 +08:00
committed by GitHub
parent da541c0af1
commit 2fce95ec43
3 changed files with 54 additions and 1 deletions

View File

@@ -2320,7 +2320,7 @@ void leaving_window(win_T *const win)
// When leaving the window (or closing the window) was done from a
// callback we need to break out of the Insert mode loop and restart Insert
// mode when entering the window again.
if (State & MODE_INSERT) {
if ((State & MODE_INSERT) && !stop_insert_mode) {
stop_insert_mode = true;
if (win->w_buffer->b_prompt_insert == NUL) {
win->w_buffer->b_prompt_insert = 'A';