Refactor and fix format

This commit is contained in:
Mikayla Maki 2023-05-08 17:31:36 -07:00
parent 49335d017a
commit fa049bea6e
No known key found for this signature in database
2 changed files with 13 additions and 20 deletions

View file

@ -147,14 +147,7 @@ impl SerializedPaneGroup {
} else { } else {
let pane = pane.upgrade(cx)?; let pane = pane.upgrade(cx)?;
workspace workspace
.update(cx, |workspace, cx| { .update(cx, |workspace, cx| workspace.force_remove_pane(&pane, 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()?; .log_err()?;
None None
} }

View file

@ -1743,16 +1743,12 @@ impl Workspace {
fn remove_pane(&mut self, pane: ViewHandle<Pane>, cx: &mut ViewContext<Self>) { fn remove_pane(&mut self, pane: ViewHandle<Pane>, cx: &mut ViewContext<Self>) {
if self.center.remove(&pane).unwrap() { if self.center.remove(&pane).unwrap() {
self.panes.retain(|p| p != &pane); self.force_remove_pane(&pane, cx);
cx.focus(self.panes.last().unwrap());
self.unfollow(&pane, cx); self.unfollow(&pane, cx);
self.last_leaders_by_pane.remove(&pane.downgrade()); self.last_leaders_by_pane.remove(&pane.downgrade());
for removed_item in pane.read(cx).items() { for removed_item in pane.read(cx).items() {
self.panes_by_item.remove(&removed_item.id()); self.panes_by_item.remove(&removed_item.id());
} }
if self.last_active_center_pane == Some(pane.downgrade()) {
self.last_active_center_pane = None;
}
cx.notify(); cx.notify();
} else { } else {
@ -2460,14 +2456,18 @@ impl Workspace {
} }
} }
Member::Pane(pane) => { Member::Pane(pane) => {
self.panes.retain(|p| p != &pane); self.force_remove_pane(&pane, cx);
}
}
}
fn force_remove_pane(&mut self, pane: &ViewHandle<Pane>, cx: &mut ViewContext<Workspace>) {
self.panes.retain(|p| p != pane);
cx.focus(self.panes.last().unwrap()); cx.focus(self.panes.last().unwrap());
if self.last_active_center_pane == Some(pane.downgrade()) { if self.last_active_center_pane == Some(pane.downgrade()) {
self.last_active_center_pane = None; self.last_active_center_pane = None;
} }
cx.notify(); cx.notify();
},
}
} }
fn serialize_workspace(&self, cx: &AppContext) { fn serialize_workspace(&self, cx: &AppContext) {