diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-09-22 19:02:38 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-09-22 19:02:38 +0100 |
commit | f87eeb43fb29f5e3d39807e6ce49e5e2d72eb38b (patch) | |
tree | afe041e2c67476addedea1f74ec458dddb23ebac | |
parent | 62de54b48d6354d4622ec0b21ffa4cf3cf312505 (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.c | 19 | ||||
-rw-r--r-- | src/version.c | 2 |
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, |