changeset 30190:c4af016733fe v9.0.0431

patch 9.0.0431: current mode shows in message window Commit: https://github.com/vim/vim/commit/7cf5839287de6f65c981a876d8a1c7e6f8d2494b Author: Bram Moolenaar <Bram@vim.org> Date: Fri Sep 9 20:19:40 2022 +0100 patch 9.0.0431: current mode shows in message window Problem: Current mode shows in message window. Solution: Reset in_echowindow before redrawing. (issue https://github.com/vim/vim/issues/11094)
author Bram Moolenaar <Bram@vim.org>
date Fri, 09 Sep 2022 21:30:03 +0200
parents 2b36af84ef1f
children f272acee7477
files src/popupwin.c src/testdir/dumps/Test_echowin_showmode.dump src/testdir/test_messages.vim src/version.c
diffstat 4 files changed, 32 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -4545,6 +4545,8 @@ start_echowindow(void)
     void
 end_echowindow(void)
 {
+    in_echowindow = FALSE;
+
     // show the message window now
     redraw_cmd(FALSE);
 
@@ -4553,7 +4555,6 @@ end_echowindow(void)
     msg_didout = TRUE;
     if (msg_col == 0)
 	msg_col = 1;
-    in_echowindow = FALSE;
 }
 #endif
 
new file mode 100644
--- /dev/null
+++ b/src/testdir/dumps/Test_echowin_showmode.dump
@@ -0,0 +1,8 @@
+>o+0&#ffffff0|n+0&#e0e0e08|e| | +0&#ffffff0@70
+|t|w|o| @71
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|═+0#e000002&@74
+|e|c|h|o| |w|i|n|d|o|w| @63
+|-+2#0000000&@1| |V|I|S|U|A|L| |L|I|N|E| |-@1| +0&&@29|1| @8|1|,|1| @10|A|l@1| 
--- a/src/testdir/test_messages.vim
+++ b/src/testdir/test_messages.vim
@@ -440,5 +440,25 @@ func Test_echowin_eval()
   call delete('XtestEchowindow')
 endfunc
 
+" messages window should not be used for showing the mode
+func Test_echowin_showmode()
+  CheckScreendump
+
+  let lines =<< trim END
+      vim9script
+      setline(1, ['one', 'two'])
+      timer_start(100, (_) => {
+           echowin 'echo window'
+         })
+      normal V
+  END
+  call writefile(lines, 'XtestEchowinMode', 'D')
+  let buf = RunVimInTerminal('-S XtestEchowinMode', #{rows: 8})
+  call VerifyScreenDump(buf, 'Test_echowin_showmode', {})
+
+  " clean up
+  call StopVimInTerminal(buf)
+endfunc
+
 
 " vim: shiftwidth=2 sts=2 expandtab
--- a/src/version.c
+++ b/src/version.c
@@ -704,6 +704,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    431,
+/**/
     430,
 /**/
     429,