diff options
Diffstat (limited to 'winit/src/program.rs')
-rw-r--r-- | winit/src/program.rs | 13 |
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); |