diff --git a/crates/gpui/src/view.rs b/crates/gpui/src/view.rs index e485aa3e57525118ea777f402a44d7d45928c5b6..ede1bd8b7fd33c01f31b65ba06e70001debb428e 100644 --- a/crates/gpui/src/view.rs +++ b/crates/gpui/src/view.rs @@ -321,8 +321,12 @@ impl Element for AnyView { } } - let mut element = (self.request_layout)(self, cx).1; - element.draw(bounds.origin, bounds.size.into(), cx); + if let Some(mut element) = state.element.take() { + element.paint(cx); + } else { + let mut element = (self.request_layout)(self, cx).1; + element.draw(bounds.origin, bounds.size.into(), cx); + } state.cache_key = Some(ViewCacheKey { bounds,