diff src/drawscreen.c @ 27641:1bdb36828dcc v8.2.4346

patch 8.2.4346: a custom statusline may cause Esc to work like Enter Commit: https://github.com/vim/vim/commit/481acb11413a436653e235d2098990b2ad47d195 Author: Bram Moolenaar <Bram@vim.org> Date: Fri Feb 11 18:51:45 2022 +0000 patch 8.2.4346: a custom statusline may cause Esc to work like Enter Problem: A custom statusline may cause Esc to work like Enter on the command line when the popup menu is displayed. Solution: Save and restore KeyTyped. (closes #9749)
author Bram Moolenaar <Bram@vim.org>
date Fri, 11 Feb 2022 20:00:03 +0100
parents 4eb2bf8b2f27
children 9c96612730a0
line wrap: on
line diff
--- a/src/drawscreen.c
+++ b/src/drawscreen.c
@@ -571,6 +571,7 @@ redraw_custom_statusline(win_T *wp)
 {
     static int	    entered = FALSE;
     int		    saved_did_emsg = did_emsg;
+    int		    saved_KeyTyped = KeyTyped;
 
     // When called recursively return.  This can happen when the statusline
     // contains an expression that triggers a redraw.
@@ -591,6 +592,9 @@ redraw_custom_statusline(win_T *wp)
     }
     did_emsg |= saved_did_emsg;
     entered = FALSE;
+
+    // A user function may reset KeyTyped, restore it.
+    KeyTyped = saved_KeyTyped;
 }
 #endif