aboutsummaryrefslogtreecommitdiff
path: root/src/app/runtime.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/app/runtime.rs')
-rw-r--r--src/app/runtime.rs17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/app/runtime.rs b/src/app/runtime.rs
index 7f7306cc..284fb882 100644
--- a/src/app/runtime.rs
+++ b/src/app/runtime.rs
@@ -418,8 +418,23 @@ impl App {
}
pub(crate) fn drain_internal_events(&mut self) -> bool {
+ self.drain_internal_events_up_to(super::APP_EVENT_DRAIN_LIMIT)
+ }
+
+ pub(crate) fn drain_all_internal_events(&mut self) -> bool {
+ let mut had_event = false;
+ while self.drain_internal_events_up_to(super::APP_EVENT_DRAIN_LIMIT) {
+ had_event = true;
+ }
+ had_event
+ }
+
+ fn drain_internal_events_up_to(&mut self, limit: usize) -> bool {
let mut had_event = false;
- while let Ok(ev) = self.event_rx.try_recv() {
+ for _ in 0..limit {
+ let Ok(ev) = self.event_rx.try_recv() else {
+ break;
+ };
had_event = true;
self.handle_internal_event(ev);
}