Split Shell::request_redraw into two different methods

This commit is contained in:
Héctor Ramón Jiménez 2024-10-25 15:40:05 +02:00
parent 7fbc195b11
commit 752403d70c
No known key found for this signature in database
GPG key ID: 4C07CEC81AFA161F
15 changed files with 89 additions and 114 deletions

View file

@ -500,8 +500,6 @@ mod toast {
shell: &mut Shell<'_, Message>,
) -> event::Status {
if let Event::Window(window::Event::RedrawRequested(now)) = &event {
let mut next_redraw: Option<window::RedrawRequest> = None;
self.instants.iter_mut().enumerate().for_each(
|(index, maybe_instant)| {
if let Some(instant) = maybe_instant.as_mut() {
@ -512,22 +510,12 @@ mod toast {
if remaining == Duration::ZERO {
maybe_instant.take();
shell.publish((self.on_close)(index));
next_redraw =
Some(window::RedrawRequest::NextFrame);
} else {
let redraw_at =
window::RedrawRequest::At(*now + remaining);
next_redraw = next_redraw
.map(|redraw| redraw.min(redraw_at))
.or(Some(redraw_at));
shell.request_redraw_at(*now + remaining);
}
}
},
);
if let Some(redraw) = next_redraw {
shell.request_redraw(redraw);
}
}
let viewport = layout.bounds();