changeset 31461:79701601ba55 v9.0.1063

patch 9.0.1063: when using Kitty a shell command may mess up the key state Commit: https://github.com/vim/vim/commit/4ab1f4a32f7e0fcafa8f542429f1f6c47dcd5d2c Author: Bram Moolenaar <Bram@vim.org> Date: Fri Dec 16 13:08:36 2022 +0000 patch 9.0.1063: when using Kitty a shell command may mess up the key state Problem: When using Kitty a shell command may mess up the key protocol state. Solution: Output t_te before t_TE. If t_te switches between the main and the alternate screen then deactivating the key protocol by t_TE should happen after switching screen. (issue #11705)
author Bram Moolenaar <Bram@vim.org>
date Fri, 16 Dec 2022 14:15:03 +0100
parents 0a5992bd6a1e
children d6db0f4e24f3
files src/term.c src/version.c
diffstat 2 files changed, 6 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/term.c
+++ b/src/term.c
@@ -3891,10 +3891,13 @@ stoptermcap(void)
 	out_str(T_KE);			// stop "keypad transmit" mode
 	out_flush();
 	termcap_active = FALSE;
+
+	// Output t_te first, it may switch between main and alternate screen,
+	// and following codes may work on the active screen only.
+	out_str(T_TE);			// stop termcap mode
 	cursor_on();			// just in case it is still off
 	out_str_t_TE();			// stop "raw" mode, modifyOtherKeys and
 					// Kitty keyboard protocol
-	out_str(T_TE);			// stop termcap mode
 	screen_start();			// don't know where cursor is now
 	out_flush();
     }
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1063,
+/**/
     1062,
 /**/
     1061,