Fully remove panes and update internal data structures

Mikayla Maki created

Change summary

crates/workspace/src/persistence/model.rs | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

Detailed changes

crates/workspace/src/persistence/model.rs 🔗

@@ -147,7 +147,14 @@ impl SerializedPaneGroup {
                 } else {
                     let pane = pane.upgrade(cx)?;
                     workspace
-                        .update(cx, |workspace, cx| workspace.remove_pane(pane, cx))
+                        .update(cx, |workspace, cx| {
+                            workspace.panes.retain(|p| p != &pane);
+                            cx.focus(workspace.panes.last().unwrap());
+                            if workspace.last_active_center_pane == Some(pane.downgrade()) {
+                                workspace.last_active_center_pane = None;
+                            }
+                            cx.notify();
+                        })
                         .log_err()?;
                     None
                 }