Checkpoint

This commit is contained in:
Antonio Scandurra 2023-10-18 16:43:20 +02:00
parent 0e4bd485e0
commit 7149f99f02
2 changed files with 13 additions and 4 deletions

View File

@ -67,7 +67,11 @@ impl<V: 'static + Send + Sync> Element for View<V> {
_: Option<Self::ElementState>,
cx: &mut ViewContext<()>,
) -> Self::ElementState {
self.state.update(cx, |state, cx| (self.render)(state, cx))
self.state.update(cx, |state, cx| {
let mut any_element = (self.render)(state, cx);
any_element.initialize(state, cx);
any_element
})
}
fn layout(
@ -161,8 +165,11 @@ impl<V: Send + Sync + 'static> ViewObject for View<V> {
fn initialize(&mut self, cx: &mut WindowContext) -> AnyBox {
cx.with_element_id(self.entity_id(), |cx| {
self.state
.update(cx, |state, cx| Box::new((self.render)(state, cx)) as AnyBox)
self.state.update(cx, |state, cx| {
let mut any_element = Box::new((self.render)(state, cx));
any_element.initialize(state, cx);
any_element as AnyBox
})
})
}

View File

@ -65,7 +65,9 @@ pub fn derive_element(input: TokenStream) -> TokenStream {
) -> Self::ElementState {
use gpui3::IntoAnyElement;
self.render(view_state, cx).into_any()
let mut element = self.render(view_state, cx).into_any();
element.initialize(view_state, cx);
element
}
fn layout(