Introduce {Window,View}Context::defer
This commit is contained in:
parent
538a9e1392
commit
163fa3ff16
1 changed files with 18 additions and 0 deletions
|
@ -376,6 +376,15 @@ impl<'a, 'w> WindowContext<'a, 'w> {
|
|||
self.notify();
|
||||
}
|
||||
|
||||
/// Schedules the given function to be run at the end of the current effect cycle, allowing entities
|
||||
/// that are currently on the stack to be returned to the app.
|
||||
pub fn defer(&mut self, f: impl FnOnce(&mut WindowContext) + 'static + Send) {
|
||||
let window = self.window.handle;
|
||||
self.app.defer(move |cx| {
|
||||
cx.update_window(window, f).ok();
|
||||
});
|
||||
}
|
||||
|
||||
pub fn subscribe<Emitter, E>(
|
||||
&mut self,
|
||||
entity: &E,
|
||||
|
@ -1595,6 +1604,15 @@ impl<'a, 'w, V: 'static> ViewContext<'a, 'w, V> {
|
|||
self.window_cx.on_next_frame(move |cx| view.update(cx, f));
|
||||
}
|
||||
|
||||
/// Schedules the given function to be run at the end of the current effect cycle, allowing entities
|
||||
/// that are currently on the stack to be returned to the app.
|
||||
pub fn defer(&mut self, f: impl FnOnce(&mut V, &mut ViewContext<V>) + 'static + Send) {
|
||||
let view = self.view();
|
||||
self.window_cx.defer(move |cx| {
|
||||
view.update(cx, f).ok();
|
||||
});
|
||||
}
|
||||
|
||||
pub fn observe<V2, E>(
|
||||
&mut self,
|
||||
entity: &E,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue