Skip to content

Commit 46569a1

Browse files
authored
fix: disable kitty keyboard protocol on Windows due to crossterm inability to handle it (#3250)
1 parent e067a70 commit 46569a1

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

yazi-fm/src/term.rs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::{io, ops::{Deref, DerefMut}, sync::atomic::{AtomicBool, Ordering}};
22

33
use anyhow::Result;
4-
use crossterm::{Command, event::{DisableBracketedPaste, DisableMouseCapture, EnableBracketedPaste, EnableMouseCapture, KeyboardEnhancementFlags, PopKeyboardEnhancementFlags, PushKeyboardEnhancementFlags}, execute, queue, style::Print, terminal::{EnterAlternateScreen, LeaveAlternateScreen, SetTitle, disable_raw_mode, enable_raw_mode}};
4+
use crossterm::{event::{DisableBracketedPaste, DisableMouseCapture, EnableBracketedPaste, EnableMouseCapture, KeyboardEnhancementFlags, PopKeyboardEnhancementFlags, PushKeyboardEnhancementFlags}, execute, queue, style::Print, terminal::{EnterAlternateScreen, LeaveAlternateScreen, SetTitle, disable_raw_mode, enable_raw_mode}};
55
use ratatui::{CompletedFrame, Frame, Terminal, backend::CrosstermBackend, buffer::Buffer, layout::Rect};
66
use yazi_adapter::{Emulator, Mux, TMUX};
77
use yazi_config::YAZI;
@@ -48,11 +48,13 @@ impl Term {
4848
yazi_term::RestoreCursor::store(&resp);
4949
CSI_U.store(resp.contains("\x1b[?0u"), Ordering::Relaxed);
5050
if CSI_U.load(Ordering::Relaxed) {
51-
PushKeyboardEnhancementFlags(
52-
KeyboardEnhancementFlags::DISAMBIGUATE_ESCAPE_CODES
53-
| KeyboardEnhancementFlags::REPORT_ALTERNATE_KEYS,
54-
)
55-
.write_ansi(&mut TTY.writer())?;
51+
_ = queue!(
52+
TTY.writer(),
53+
PushKeyboardEnhancementFlags(
54+
KeyboardEnhancementFlags::DISAMBIGUATE_ESCAPE_CODES
55+
| KeyboardEnhancementFlags::REPORT_ALTERNATE_KEYS,
56+
)
57+
);
5658
}
5759

5860
if let Some(s) = YAZI.mgr.title() {
@@ -67,7 +69,7 @@ impl Term {
6769

6870
fn stop(&mut self) -> Result<()> {
6971
if CSI_U.swap(false, Ordering::Relaxed) {
70-
PopKeyboardEnhancementFlags.write_ansi(&mut TTY.writer())?;
72+
queue!(TTY.writer(), PopKeyboardEnhancementFlags).ok();
7173
}
7274

7375
if !YAZI.mgr.title_format.is_empty() {
@@ -88,7 +90,7 @@ impl Term {
8890

8991
pub(super) fn goodbye(f: impl FnOnce() -> i32) -> ! {
9092
if CSI_U.swap(false, Ordering::Relaxed) {
91-
PopKeyboardEnhancementFlags.write_ansi(&mut TTY.writer()).ok();
93+
queue!(TTY.writer(), PopKeyboardEnhancementFlags).ok();
9294
}
9395

9496
if !YAZI.mgr.title_format.is_empty() {

0 commit comments

Comments
 (0)