Avoid unnecessary call to with_element_id in RenderViewWith

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
This commit is contained in:
Antonio Scandurra 2023-11-15 20:12:30 +01:00
parent 1d04dc5dbf
commit 759ce7440c

View file

@ -1,7 +1,7 @@
use crate::{ use crate::{
private::Sealed, AnyBox, AnyElement, AnyModel, AnyWeakModel, AppContext, AvailableSpace, private::Sealed, AnyBox, AnyElement, AnyModel, AnyWeakModel, AppContext, AvailableSpace,
BorrowWindow, Bounds, Component, Element, ElementId, Entity, EntityId, Flatten, LayoutId, Bounds, Component, Element, ElementId, Entity, EntityId, Flatten, LayoutId, Model, Pixels,
Model, Pixels, Size, ViewContext, VisualContext, WeakModel, WindowContext, Size, ViewContext, VisualContext, WeakModel, WindowContext,
}; };
use anyhow::{Context, Result}; use anyhow::{Context, Result};
use std::{ use std::{
@ -325,12 +325,10 @@ where
_: Option<Self::ElementState>, _: Option<Self::ElementState>,
cx: &mut ViewContext<ParentViewState>, cx: &mut ViewContext<ParentViewState>,
) -> Self::ElementState { ) -> Self::ElementState {
cx.with_element_id(Some(self.view.entity_id()), |cx| { self.view.update(cx, |view, cx| {
self.view.update(cx, |view, cx| { let mut element = self.component.take().unwrap().render();
let mut element = self.component.take().unwrap().render(); element.initialize(view, cx);
element.initialize(view, cx); element
element
})
}) })
} }
@ -340,9 +338,7 @@ where
element: &mut Self::ElementState, element: &mut Self::ElementState,
cx: &mut ViewContext<ParentViewState>, cx: &mut ViewContext<ParentViewState>,
) -> LayoutId { ) -> LayoutId {
cx.with_element_id(Some(self.view.entity_id()), |cx| { self.view.update(cx, |view, cx| element.layout(view, cx))
self.view.update(cx, |view, cx| element.layout(view, cx))
})
} }
fn paint( fn paint(
@ -352,9 +348,7 @@ where
element: &mut Self::ElementState, element: &mut Self::ElementState,
cx: &mut ViewContext<ParentViewState>, cx: &mut ViewContext<ParentViewState>,
) { ) {
cx.with_element_id(Some(self.view.entity_id()), |cx| { self.view.update(cx, |view, cx| element.paint(view, cx))
self.view.update(cx, |view, cx| element.paint(view, cx))
})
} }
} }