2024-02-27 17:47:51 -08:00
|
|
|
use std::panic;
|
|
|
|
|
|
|
|
pub fn crossterm_panic_handler() {
|
|
|
|
let original_hook = panic::take_hook();
|
|
|
|
panic::set_hook(Box::new(move |panic_info| {
|
2024-02-28 20:44:53 -08:00
|
|
|
let _ = crossterm::execute!(
|
2024-02-27 17:47:51 -08:00
|
|
|
std::io::stderr(),
|
|
|
|
crossterm::terminal::LeaveAlternateScreen,
|
|
|
|
crossterm::event::DisableMouseCapture
|
2024-02-28 20:44:53 -08:00
|
|
|
);
|
|
|
|
let _ = crossterm::terminal::disable_raw_mode();
|
2024-02-27 17:47:51 -08:00
|
|
|
original_hook(panic_info);
|
|
|
|
}));
|
|
|
|
}
|