From 0140bb862e85a5adaae741b8e15e08d579e0a5df Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Tue, 12 Dec 2023 17:15:54 +0200 Subject: [PATCH] Fix the tests Co-authored-by: Antonio --- crates/gpui2/src/app.rs | 96 ++++++++++++++++++++--------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/crates/gpui2/src/app.rs b/crates/gpui2/src/app.rs index 7d61f4d84741d6ade16dccf75fc0d1ee65b669b1..2d619c7733ae54c5a93396377ebb7b05d875fa6d 100644 --- a/crates/gpui2/src/app.rs +++ b/crates/gpui2/src/app.rs @@ -569,60 +569,60 @@ impl AppContext { /// such as notifying observers, emitting events, etc. Effects can themselves /// cause effects, so we continue looping until all effects are processed. fn flush_effects(&mut self) { - while !self.pending_effects.is_empty() { - loop { - self.release_dropped_entities(); - self.release_dropped_focus_handles(); - if let Some(effect) = self.pending_effects.pop_front() { - match effect { - Effect::Notify { emitter } => { - self.apply_notify_effect(emitter); - } - Effect::Emit { - emitter, - event_type, - event, - } => self.apply_emit_effect(emitter, event_type, event), - Effect::FocusChanged { - window_handle, - focused, - } => { - self.apply_focus_changed_effect(window_handle, focused); - } - Effect::Refresh => { - self.apply_refresh_effect(); - } - Effect::NotifyGlobalObservers { global_type } => { - self.apply_notify_global_observers_effect(global_type); - } - Effect::Defer { callback } => { - self.apply_defer_effect(callback); + loop { + self.release_dropped_entities(); + self.release_dropped_focus_handles(); + if let Some(effect) = self.pending_effects.pop_front() { + match effect { + Effect::Notify { emitter } => { + self.apply_notify_effect(emitter); + } + Effect::Emit { + emitter, + event_type, + event, + } => self.apply_emit_effect(emitter, event_type, event), + Effect::FocusChanged { + window_handle, + focused, + } => { + self.apply_focus_changed_effect(window_handle, focused); + } + Effect::Refresh => { + self.apply_refresh_effect(); + } + Effect::NotifyGlobalObservers { global_type } => { + self.apply_notify_global_observers_effect(global_type); + } + Effect::Defer { callback } => { + self.apply_defer_effect(callback); + } + } + } else { + for window in self.windows.values() { + if let Some(window) = window.as_ref() { + if window.dirty { + window.platform_window.invalidate(); } } - } else { - break; } - } - for window in self.windows.values() { - if let Some(window) = window.as_ref() { - if window.dirty { - window.platform_window.invalidate(); - } + #[cfg(any(test, feature = "test-support"))] + for window in self + .windows + .values() + .filter_map(|window| { + let window = window.as_ref()?; + window.dirty.then_some(window.handle) + }) + .collect::>() + { + self.update_window(window, |_, cx| cx.draw()).unwrap(); } - } - #[cfg(any(test, feature = "test-support"))] - for window in self - .windows - .values() - .filter_map(|window| { - let window = window.as_ref()?; - window.dirty.then_some(window.handle) - }) - .collect::>() - { - self.update_window(window, |_, cx| cx.draw()).unwrap(); + if self.pending_effects.is_empty() { + break; + } } } }