This commit is contained in:
2026-01-24 02:16:18 +01:00
parent b3c56bc56c
commit e1aff189cd
6 changed files with 84 additions and 29 deletions

View File

@@ -17,7 +17,7 @@ use std::sync::Arc;
use std::time::Duration;
use clap::Parser;
use crossterm::event::{self, Event};
use crossterm::event::{self, Event, EnableBracketedPaste, DisableBracketedPaste};
use crossterm::terminal::{
disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen,
};
@@ -137,6 +137,7 @@ fn main() -> io::Result<()> {
app.mark_all_patterns_dirty();
enable_raw_mode()?;
io::stdout().execute(EnableBracketedPaste)?;
io::stdout().execute(EnterAlternateScreen)?;
let backend = CrosstermBackend::new(io::stdout());
let mut terminal = Terminal::new(backend)?;
@@ -203,24 +204,33 @@ fn main() -> io::Result<()> {
terminal.draw(|frame| views::render(frame, &mut app, &link, &seq_snapshot))?;
if event::poll(Duration::from_millis(app.audio.config.refresh_rate.millis()))? {
if let Event::Key(key) = event::read()? {
let mut ctx = InputContext {
app: &mut app,
link: &link,
snapshot: &seq_snapshot,
playing: &playing,
audio_tx: &sequencer.audio_tx,
};
match event::read()? {
Event::Key(key) => {
let mut ctx = InputContext {
app: &mut app,
link: &link,
snapshot: &seq_snapshot,
playing: &playing,
audio_tx: &sequencer.audio_tx,
};
if let InputResult::Quit = handle_key(&mut ctx, key) {
break;
if let InputResult::Quit = handle_key(&mut ctx, key) {
break;
}
}
Event::Paste(text) => {
if matches!(app.ui.modal, state::Modal::Editor) {
app.editor_ctx.editor.insert_str(&text);
}
}
_ => {}
}
}
}
disable_raw_mode()?;
io::stdout().execute(DisableBracketedPaste)?;
io::stdout().execute(LeaveAlternateScreen)?;
sequencer.shutdown();