Rename function to event_loop to key_capture

This commit is contained in:
Dheepak Krishnamurthy 2020-11-03 16:51:48 -07:00
parent 4ca68100b4
commit fa33e1515e
2 changed files with 13 additions and 5 deletions

View file

@ -1301,9 +1301,9 @@ impl TTApp {
} }
}, },
Key::Char('e') => { Key::Char('e') => {
events.pause_event_loop(terminal); events.pause_key_capture(terminal);
let r = self.task_edit(); let r = self.task_edit();
events.resume_event_loop(terminal); events.resume_key_capture(terminal);
match r { match r {
Ok(_) => self.update()?, Ok(_) => self.update()?,
Err(e) => { Err(e) => {

View file

@ -146,19 +146,27 @@ impl Events {
*self.pause_ticker.lock().unwrap() = false; *self.pause_ticker.lock().unwrap() = false;
} }
pub fn pause_event_loop(&self, terminal: &mut Terminal<CrosstermBackend<io::Stdout>>) { pub fn pause_event_loop(&self) {
*self.pause_stdin.lock().unwrap() = true; *self.pause_stdin.lock().unwrap() = true;
}
pub fn resume_event_loop(&self) {
*self.pause_stdin.lock().unwrap() = false;
}
pub fn pause_key_capture(&self, terminal: &mut Terminal<CrosstermBackend<io::Stdout>>) {
self.pause_event_loop();
std::thread::sleep(std::time::Duration::from_millis(50)); std::thread::sleep(std::time::Duration::from_millis(50));
disable_raw_mode().unwrap(); disable_raw_mode().unwrap();
execute!(io::stdout(), LeaveAlternateScreen, DisableMouseCapture).unwrap(); execute!(io::stdout(), LeaveAlternateScreen, DisableMouseCapture).unwrap();
terminal.show_cursor().unwrap(); terminal.show_cursor().unwrap();
} }
pub fn resume_event_loop(&self, terminal: &mut Terminal<CrosstermBackend<io::Stdout>>) { pub fn resume_key_capture(&self, terminal: &mut Terminal<CrosstermBackend<io::Stdout>>) {
enable_raw_mode().unwrap(); enable_raw_mode().unwrap();
execute!(io::stdout(), EnterAlternateScreen, EnableMouseCapture).unwrap(); execute!(io::stdout(), EnterAlternateScreen, EnableMouseCapture).unwrap();
std::thread::sleep(std::time::Duration::from_millis(50)); std::thread::sleep(std::time::Duration::from_millis(50));
*self.pause_stdin.lock().unwrap() = false; self.resume_event_loop();
terminal.resize(terminal.size().unwrap()).unwrap(); terminal.resize(terminal.size().unwrap()).unwrap();
} }
} }