changeset 24521:3efc5cb6a404 v8.2.2800

patch 8.2.2800: after a timer displays text a hit-enter prompt is given Commit: https://github.com/vim/vim/commit/9f28416e54cefe8b6a2382d078c78f1d469e60cd Author: Bram Moolenaar <Bram@vim.org> Date: Thu Apr 22 21:39:30 2021 +0200 patch 8.2.2800: after a timer displays text a hit-enter prompt is given Problem: After a timer displays text a hit-enter prompt is given. Solution: Reset msg_didany and need_wait_return. (closes https://github.com/vim/vim/issues/8136)
author Bram Moolenaar <Bram@vim.org>
date Thu, 22 Apr 2021 21:45:03 +0200
parents 5bda4653aced
children 620f0e8fe10f
files src/drawscreen.c src/testdir/test_timers.vim src/version.c
diffstat 3 files changed, 31 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/drawscreen.c
+++ b/src/drawscreen.c
@@ -3002,6 +3002,13 @@ redraw_after_callback(int call_update_sc
 	// keep the command line if possible
 	update_screen(VALID_NO_UPDATE);
 	setcursor();
+
+	if (msg_scrolled == 0)
+	{
+	    // don't want a hit-enter prompt when something else is displayed
+	    msg_didany = FALSE;
+	    need_wait_return = FALSE;
+	}
     }
     cursor_on();
 #ifdef FEAT_GUI
--- a/src/testdir/test_timers.vim
+++ b/src/testdir/test_timers.vim
@@ -449,4 +449,26 @@ func Test_timer_changing_function_list()
   call delete('XTest_timerchange')
 endfunc
 
+func Test_timer_outputting_message()
+  CheckRunVimInTerminal
+
+  let lines =<< trim END
+    vim9script
+    setline(1, 'some text')
+    set showcmd ut=2000 cmdheight=1
+    timer_start(0, (_) => {
+            echon repeat('x', &columns - 11)
+        })
+  END
+  call writefile(lines, 'XTest_timermessage')
+  let buf = RunVimInTerminal('-S XTest_timermessage', #{rows: 6})
+  call term_sendkeys(buf, "l")
+  call term_wait(buf)
+  " should not get a hit-enter prompt
+  call WaitForAssert({-> assert_match('xxxxxxxxxxx', term_getline(buf, 6))})
+
+  call StopVimInTerminal(buf)
+  call delete('XTest_timermessage')
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2800,
+/**/
     2799,
 /**/
     2798,