fix(sctk): reduce event spam for redraw requests

This commit is contained in:
Ashley Wulber 2024-10-21 23:49:59 -04:00
parent 175a71590a
commit 90c0aefa25
No known key found for this signature in database
GPG key ID: 5216D4F46A90A820
7 changed files with 53 additions and 79 deletions

View file

@ -86,6 +86,7 @@ where
drag_resize_window_func: None,
prev_dnd_destination_rectangles_count: 0,
viewport_version: 0,
redraw_requested: false,
},
);
@ -191,6 +192,7 @@ where
pub redraw_at: Option<Instant>,
preedit: Option<Preedit<P::Renderer>>,
ime_state: Option<(Rectangle, input_method::Purpose)>,
pub(crate) redraw_requested: bool,
}
impl<P, C> Window<P, C>
@ -219,11 +221,15 @@ where
pub fn request_redraw(&mut self, redraw_request: RedrawRequest) {
match redraw_request {
RedrawRequest::NextFrame => {
self.raw.request_redraw();
if !self.redraw_requested {
self.redraw_requested = true;
self.raw.request_redraw();
}
self.redraw_at = None;
}
RedrawRequest::At(at) => {
self.redraw_at = Some(at);
self.redraw_requested = false;
}
RedrawRequest::Wait => {}
}