зеркало из
https://github.com/glebtv/tui-textarea.git
synced 2026-09-08 00:15:50 +03:00
remove unnecessary tick handling in termwiz example
Этот коммит содержится в:
@@ -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()?;
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user