Flash
This commit is contained in:
32
src/main.rs
32
src/main.rs
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user