aboutsummaryrefslogtreecommitdiff
path: root/src/tui.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/tui.rs')
-rw-r--r--src/tui.rs13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/tui.rs b/src/tui.rs
index 546e939..930f6e7 100644
--- a/src/tui.rs
+++ b/src/tui.rs
@@ -1,8 +1,12 @@
+use crossterm::event::{
+ Event, KeyboardEnhancementFlags, PopKeyboardEnhancementFlags,
+ PushKeyboardEnhancementFlags,
+};
use crossterm::terminal::{
disable_raw_mode, enable_raw_mode, EnterAlternateScreen,
LeaveAlternateScreen,
};
-use crossterm::{event, event::Event, execute};
+use crossterm::{event, execute};
use ratatui::prelude::{CrosstermBackend, Terminal};
use std::io;
use std::io::{stdout, Stdout};
@@ -11,6 +15,12 @@ pub type Tui = Terminal<CrosstermBackend<Stdout>>;
pub fn init() -> io::Result<Tui> {
execute!(stdout(), EnterAlternateScreen)?;
+ execute!(
+ stdout(),
+ PushKeyboardEnhancementFlags(
+ KeyboardEnhancementFlags::DISAMBIGUATE_ESCAPE_CODES,
+ )
+ )?;
enable_raw_mode()?;
Terminal::new(CrosstermBackend::new(stdout()))
@@ -18,6 +28,7 @@ pub fn init() -> io::Result<Tui> {
pub fn restore() -> io::Result<()> {
execute!(stdout(), LeaveAlternateScreen)?;
+ execute!(stdout(), PopKeyboardEnhancementFlags)?;
disable_raw_mode()?;
Ok(())