Mercurial > vim
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(); }