summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-09-22 19:02:38 +0100
committerBram Moolenaar <Bram@vim.org>2022-09-22 19:02:38 +0100
commitf87eeb43fb29f5e3d39807e6ce49e5e2d72eb38b (patch)
treeafe041e2c67476addedea1f74ec458dddb23ebac
parent62de54b48d6354d4622ec0b21ffa4cf3cf312505 (diff)
patch 9.0.0551: mode message is delayed when :echowin was usedv9.0.0551
Problem: Mode message is delayed when :echowin was used. (Maxim Kim) Solution: Save and restore msg_didout in :echowin. (closes #11193)
-rw-r--r--src/popupwin.c19
-rw-r--r--src/version.c2
2 files changed, 17 insertions, 4 deletions
diff --git a/src/popupwin.c b/src/popupwin.c
index fce4a2b811..4cc7dec6fa 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -4557,6 +4557,13 @@ popup_hide_message_win(void)
popup_hide(message_win);
}
+// Values saved in start_echowindow() and restored in end_echowindow()
+static int save_msg_didout = FALSE;
+static int save_msg_col = 0;
+// Values saved in end_echowindow() and restored in start_echowindow()
+static int ew_msg_didout = FALSE;
+static int ew_msg_col = 0;
+
/*
* Invoked before outputting a message for ":echowindow".
*/
@@ -4564,6 +4571,10 @@ popup_hide_message_win(void)
start_echowindow(void)
{
in_echowindow = TRUE;
+ save_msg_didout = msg_didout;
+ save_msg_col = msg_col;
+ msg_didout = ew_msg_didout;
+ msg_col = ew_msg_col;
}
/*
@@ -4579,10 +4590,10 @@ end_echowindow(void)
redraw_cmd(FALSE);
// do not overwrite messages
- // TODO: only for message window
- msg_didout = TRUE;
- if (msg_col == 0)
- msg_col = 1;
+ ew_msg_didout = TRUE;
+ ew_msg_col = msg_col == 0 ? 1 : msg_col;
+ msg_didout = save_msg_didout;
+ msg_col = save_msg_col;
}
#endif
diff --git a/src/version.c b/src/version.c
index 5d6951c879..c3b6c12903 100644
--- a/src/version.c
+++ b/src/version.c
@@ -700,6 +700,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 551,
+/**/
550,
/**/
549,