diff --git a/crates/project_panel/src/project_panel.rs b/crates/project_panel/src/project_panel.rs index b88e14f2de..61c97f281d 100644 --- a/crates/project_panel/src/project_panel.rs +++ b/crates/project_panel/src/project_panel.rs @@ -161,7 +161,7 @@ impl ProjectPanel { this }); cx.subscribe(&project_panel, { - let project_panel = project_panel.clone(); + let project_panel = project_panel.downgrade(); move |workspace, _, event, cx| match event { &Event::OpenedEntry { entry_id, @@ -180,7 +180,9 @@ impl ProjectPanel { ) .detach_and_log_err(cx); if !focus_opened_item { - cx.focus(&project_panel); + if let Some(project_panel) = project_panel.upgrade(cx) { + cx.focus(&project_panel); + } } } }