1
0
зеркало из https://github.com/glebtv/tui-textarea.git synced 2026-09-08 00:15:50 +03:00

remove unnecessary tick handling in termwiz example

Этот коммит содержится в:
rhysd
2023-10-21 10:43:25 +09:00
родитель 4ca61938e3
Коммит 4bdf55a1f6

Просмотреть файл

@@ -2,13 +2,11 @@ use ratatui::backend::TermwizBackend;
use ratatui::widgets::{Block, Borders}; use ratatui::widgets::{Block, Borders};
use ratatui::Terminal; use ratatui::Terminal;
use std::error::Error; use std::error::Error;
use std::time::{Duration, Instant}; use std::time::Duration;
use termwiz::input::InputEvent; use termwiz::input::InputEvent;
use termwiz::terminal::Terminal as TermwizTerminal; use termwiz::terminal::Terminal as _;
use tui_textarea::{Input, Key, TextArea}; use tui_textarea::{Input, Key, TextArea};
const TICK_RATE: Duration = Duration::from_millis(100);
fn main() -> Result<(), Box<dyn Error>> { fn main() -> Result<(), Box<dyn Error>> {
let backend = TermwizBackend::new()?; let backend = TermwizBackend::new()?;
let mut term = Terminal::new(backend)?; let mut term = Terminal::new(backend)?;
@@ -20,7 +18,6 @@ fn main() -> Result<(), Box<dyn Error>> {
.borders(Borders::ALL) .borders(Borders::ALL)
.title("Termwiz Minimal Example"), .title("Termwiz Minimal Example"),
); );
let mut last_tick = Instant::now();
// The event loop // The event loop
loop { loop {
@@ -29,15 +26,11 @@ fn main() -> Result<(), Box<dyn Error>> {
f.render_widget(widget, f.size()); f.render_widget(widget, f.size());
})?; })?;
let timeout = TICK_RATE
.checked_sub(last_tick.elapsed())
.unwrap_or_else(|| Duration::from_secs(0));
if let Some(input) = term if let Some(input) = term
.backend_mut() .backend_mut()
.buffered_terminal_mut() .buffered_terminal_mut()
.terminal() .terminal()
.poll_input(Some(timeout))? .poll_input(Some(Duration::from_millis(100)))?
{ {
if let InputEvent::Resized { cols, rows } = input { if let InputEvent::Resized { cols, rows } = input {
term.backend_mut() term.backend_mut()
@@ -52,10 +45,6 @@ fn main() -> Result<(), Box<dyn Error>> {
} }
} }
} }
if last_tick.elapsed() >= TICK_RATE {
last_tick = Instant::now();
}
} }
term.show_cursor()?; term.show_cursor()?;