diff src/window.c @ 34144:27b3a4fe9c5e v9.1.0033

patch 9.1.0033: Insert mode not stopped if closing prompt buffer modifies hidden buffer Commit: https://github.com/vim/vim/commit/96958366ad6159efe708b694055320ed19357e61 Author: zeertzjq <zeertzjq@outlook.com> Date: Tue Jan 16 17:19:59 2024 +0100 patch 9.1.0033: Insert mode not stopped if closing prompt buffer modifies hidden buffer 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: #13872 Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Tue, 16 Jan 2024 17:30:08 +0100
parents 0c40b031e7d8
children a522c6c0127b
line wrap: on
line diff
--- a/src/window.c
+++ b/src/window.c
@@ -2362,7 +2362,7 @@ leaving_window(win_T *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)