mirror of
https://github.com/zed-industries/zed.git
synced 2024-10-27 16:57:08 +00:00
Checkpoint
This commit is contained in:
parent
1c70ca2214
commit
ed20397a2b
3 changed files with 10 additions and 4 deletions
|
@ -146,6 +146,7 @@ impl AppContext {
|
|||
}
|
||||
|
||||
fn flush_effects(&mut self) {
|
||||
dbg!("flush effects");
|
||||
while let Some(effect) = self.pending_effects.pop_front() {
|
||||
match effect {
|
||||
Effect::Notify(entity_id) => self.apply_notify_effect(entity_id),
|
||||
|
|
|
@ -67,6 +67,12 @@ impl AsyncWindowContext {
|
|||
pub fn update<R>(&self, update: impl FnOnce(&mut WindowContext) -> R) -> Result<R> {
|
||||
self.app.update_window(self.window, update)
|
||||
}
|
||||
|
||||
pub fn on_next_frame(&mut self, f: impl FnOnce(&mut WindowContext) + Send + 'static) {
|
||||
self.app
|
||||
.update_window(self.window, |cx| cx.on_next_frame(f))
|
||||
.ok();
|
||||
}
|
||||
}
|
||||
|
||||
impl Context for AsyncWindowContext {
|
||||
|
|
|
@ -75,12 +75,11 @@ impl<S: Send + Sync + 'static> Element for Img<S> {
|
|||
let corner_radii = style.corner_radii.to_pixels(bounds, cx.rem_size());
|
||||
cx.paint_image(bounds, corner_radii, order, data, self.grayscale)?;
|
||||
} else {
|
||||
cx.spawn(|view, mut cx| async move {
|
||||
cx.spawn(|_, mut cx| async move {
|
||||
if image_future.await.log_err().is_some() {
|
||||
view.update(&mut cx, |_, cx| {
|
||||
cx.on_next_frame(|cx| {
|
||||
cx.notify();
|
||||
})
|
||||
.ok();
|
||||
});
|
||||
}
|
||||
})
|
||||
.detach()
|
||||
|
|
Loading…
Reference in a new issue