diff src/edit.c @ 26598:b3ac5a4dc158 v8.2.3828

patch 8.2.3828: when opening a terminal from a timer first typed char is lost Commit: https://github.com/vim/vim/commit/8103527da7f12ff21c2566222748518ee093432c Author: Bram Moolenaar <Bram@vim.org> Date: Thu Dec 16 18:02:07 2021 +0000 patch 8.2.3828: when opening a terminal from a timer first typed char is lost Problem: when opening a terminal from a timer the first typed character is lost. (Virginia Senioria) Solution: When opening a terminal while waiting for a character put K_IGNORE in the input buffer.
author Bram Moolenaar <Bram@vim.org>
date Thu, 16 Dec 2021 19:15:04 +0100
parents 9596c652420b
children fc859aea8cec
line wrap: on
line diff
--- a/src/edit.c
+++ b/src/edit.c
@@ -598,9 +598,14 @@ edit(
 	    {
 		c = safe_vgetc();
 
-		if (stop_insert_mode)
+		if (stop_insert_mode
+#ifdef FEAT_TERMINAL
+			|| (c == K_IGNORE && term_use_loop())
+#endif
+		   )
 		{
-		    // Insert mode ended, possibly from a callback.
+		    // Insert mode ended, possibly from a callback, or a timer
+		    // must have opened a terminal window.
 		    if (c != K_IGNORE && c != K_NOP)
 			vungetc(c);
 		    count = 0;