summaryrefslogtreecommitdiffstats
path: root/winit/src/program.rs
diff options
context:
space:
mode:
Diffstat (limited to 'winit/src/program.rs')
-rw-r--r--winit/src/program.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/winit/src/program.rs b/winit/src/program.rs
index 5387e5e5..d8436212 100644
--- a/winit/src/program.rs
+++ b/winit/src/program.rs
@@ -737,6 +737,17 @@ async fn run_instance<P, C>(
}
}
}
+
+ if let Some(redraw_at) = window_manager.redraw_at() {
+ let _ =
+ control_sender.start_send(Control::ChangeFlow(
+ ControlFlow::WaitUntil(redraw_at),
+ ));
+ } else {
+ let _ = control_sender.start_send(
+ Control::ChangeFlow(ControlFlow::Wait),
+ );
+ }
}
event::Event::PlatformSpecific(
event::PlatformSpecific::MacOS(
@@ -868,6 +879,7 @@ async fn run_instance<P, C>(
match redraw_request {
window::RedrawRequest::NextFrame => {
window.raw.request_redraw();
+ window.redraw_at = None;
}
window::RedrawRequest::At(at) => {
window.redraw_at = Some(at);
@@ -1028,6 +1040,7 @@ async fn run_instance<P, C>(
} => match redraw_request {
window::RedrawRequest::NextFrame => {
window.raw.request_redraw();
+ window.redraw_at = None;
}
window::RedrawRequest::At(at) => {
window.redraw_at = Some(at);