diff --git a/src/editor/mod.rs b/src/editor/mod.rs
index 8710360..5662409 100644
--- a/src/editor/mod.rs
+++ b/src/editor/mod.rs
@@ -72,7 +72,7 @@ impl Editor {
RedrawEvent::ModeChange { mode_index } => self.cursor.change_mode(mode_index, &self.defined_styles),
RedrawEvent::BusyStart => self.cursor.enabled = false,
RedrawEvent::BusyStop => self.cursor.enabled = true,
- RedrawEvent::Flush => REDRAW_SCHEDULER.request_redraw(),
+ RedrawEvent::Flush => REDRAW_SCHEDULER.queue_next_frame(),
RedrawEvent::Resize { width, height, .. } => self.resize((width, height)),
RedrawEvent::DefaultColorsSet { colors } => self.default_colors = colors,
RedrawEvent::HighlightAttributesDefine { id, style } => { self.defined_styles.insert(id, style); },
diff --git a/src/redraw_scheduler.rs b/src/redraw_scheduler.rs
index eabf57a..eff5e36 100644
--- a/src/redraw_scheduler.rs
+++ b/src/redraw_scheduler.rs
@@ -1,44 +1,81 @@
use std::sync::{Arc, Mutex};
-use std::time::Instant;
+use std::sync::atomic::{AtomicBool, Ordering};
+use std::time::{Duration, Instant};
+use std::thread;
use skulpin::winit::window::Window;
-use tokio::runtime::Runtime;
-use tokio::time::{Instant as TokioInstant, delay_until};
lazy_static! {
pub static ref REDRAW_SCHEDULER: RedrawScheduler = RedrawScheduler::new();
}
pub struct RedrawScheduler {
- runtime: Runtime,
- window: Mutex