重构: 优化终端初始化和清理流程

This commit is contained in:
xiaoxixi 2026-04-26 21:40:34 +08:00
parent bcee62713f
commit 38425e23f6

View File

@ -25,17 +25,20 @@ pub async fn run(gateway_url: &str) -> Result<(), Box<dyn std::error::Error>> {
app.ws_sender = Some(ws_sender);
app.ws_receiver = Some(ws_receiver);
// 初始化终端
enable_raw_mode()?;
let mut stdout = io::stdout();
execute!(stdout, EnterAlternateScreen)?;
let backend = CrosstermBackend::new(stdout);
let mut terminal = Terminal::new(backend)?;
terminal.clear()?;
let result = run_app(&mut terminal, app).await;
disable_raw_mode()?;
execute!(terminal.backend_mut(), LeaveAlternateScreen)?;
terminal.show_cursor()?;
// 清理终端 - 确保正确的顺序,忽略错误
let _ = execute!(terminal.backend_mut(), LeaveAlternateScreen);
let _ = disable_raw_mode();
let _ = terminal.show_cursor();
result
}