From 7f1c780ac5887cbaa3ee6d82f585cb54a43f7045 Mon Sep 17 00:00:00 2001 From: Michael Davis Date: Sat, 26 Nov 2022 13:56:23 -0600 Subject: [PATCH] Check keyboard enhancement in the event-read example --- examples/event-read.rs | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/examples/event-read.rs b/examples/event-read.rs index a111fd8e5..350432f45 100644 --- a/examples/event-read.rs +++ b/examples/event-read.rs @@ -13,7 +13,7 @@ use crossterm::{ read, DisableBracketedPaste, DisableFocusChange, DisableMouseCapture, EnableBracketedPaste, EnableFocusChange, EnableMouseCapture, Event, KeyCode, }, - execute, + execute, queue, terminal::{disable_raw_mode, enable_raw_mode}, Result, }; @@ -69,22 +69,38 @@ fn main() -> Result<()> { enable_raw_mode()?; let mut stdout = stdout(); + + let supports_keyboard_enhancement = matches!( + crossterm::terminal::supports_keyboard_enhancement(), + Ok(true) + ); + + if supports_keyboard_enhancement { + queue!( + stdout, + PushKeyboardEnhancementFlags( + KeyboardEnhancementFlags::DISAMBIGUATE_ESCAPE_CODES + | KeyboardEnhancementFlags::REPORT_ALL_KEYS_AS_ESCAPE_CODES + | KeyboardEnhancementFlags::REPORT_EVENT_TYPES + ) + )?; + } + execute!( stdout, EnableBracketedPaste, EnableFocusChange, EnableMouseCapture, - PushKeyboardEnhancementFlags( - KeyboardEnhancementFlags::DISAMBIGUATE_ESCAPE_CODES - | KeyboardEnhancementFlags::REPORT_ALL_KEYS_AS_ESCAPE_CODES - | KeyboardEnhancementFlags::REPORT_EVENT_TYPES - ) )?; if let Err(e) = print_events() { println!("Error: {:?}\r", e); } + if supports_keyboard_enhancement { + queue!(stdout, PopKeyboardEnhancementFlags)?; + } + execute!( stdout, DisableBracketedPaste,