diff --git a/gpui/src/presenter.rs b/gpui/src/presenter.rs index 983da559d7de1f3acdb269dc784b86256ebda12b..8fdf94de005bf133e015a8947c60e8ea5fa5245a 100644 --- a/gpui/src/presenter.rs +++ b/gpui/src/presenter.rs @@ -55,15 +55,16 @@ impl Presenter { path } - pub fn invalidate(&mut self, invalidation: WindowInvalidation, app: &AppContext) { - for view_id in invalidation.updated { - self.rendered_views - .insert(view_id, app.render_view(self.window_id, view_id).unwrap()); - } + pub fn invalidate(&mut self, mut invalidation: WindowInvalidation, app: &AppContext) { for view_id in invalidation.removed { + invalidation.updated.remove(&view_id); self.rendered_views.remove(&view_id); self.parents.remove(&view_id); } + for view_id in invalidation.updated { + self.rendered_views + .insert(view_id, app.render_view(self.window_id, view_id).unwrap()); + } } pub fn build_scene(