From 29cddabfe46f3a4949e9434a22328a112b3d220e Mon Sep 17 00:00:00 2001 From: Johannes Altmanninger Date: Tue, 21 Jan 2025 14:07:07 +0100 Subject: [PATCH] Fix regression causing fish_key_reader to not request kitty flags Fixes 081c3282b7 (Refresh TTY timestamps also in some rare cases, 2025-01-15). --- src/builtins/fish_key_reader.rs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/builtins/fish_key_reader.rs b/src/builtins/fish_key_reader.rs index 24dc4924a..90b46f942 100644 --- a/src/builtins/fish_key_reader.rs +++ b/src/builtins/fish_key_reader.rs @@ -19,8 +19,9 @@ use crate::{ env::env_init, input::input_terminfo_get_name, input_common::{ - terminal_protocol_hacks, terminal_protocols_enable_ifn, CharEvent, InputEventQueue, - InputEventQueuer, KITTY_PROGRESSIVE_ENHANCEMENTS_QUERY, + enable_kitty_progressive_enhancements, terminal_protocol_hacks, + terminal_protocols_enable_ifn, CharEvent, ImplicitEvent, InputEventQueue, InputEventQueuer, + KITTY_PROGRESSIVE_ENHANCEMENTS_QUERY, }, key::{char_to_symbol, Key}, nix::isatty, @@ -98,8 +99,14 @@ fn process_input(streams: &mut IoStreams, continuous_mode: bool, verbose: bool) while (!first_char_seen || continuous_mode) && !check_exit_loop_maybe_warning(None) { let evt = queue.readch(); - let CharEvent::Key(kevt) = evt else { - continue; + let kevt = match evt { + CharEvent::Key(kevt) => kevt, + CharEvent::Readline(_) | CharEvent::Command(_) => continue, + CharEvent::Implicit(ImplicitEvent::KittyKeyboardSupported) => { + enable_kitty_progressive_enhancements(); + continue; + } + CharEvent::Implicit(_) => continue, }; let c = kevt.key.codepoint; if verbose {