Allow an empty center group to successfully deserialize into an empty pane.

Fix error when deserializing pane axis which caused it's members.len() > 1 invariant to be violated
Fix failure to gain center pane focus when failing to deserialize a center pane entirely

Co-authored-by: Max <max@zed.dev>
This commit is contained in:
Mikayla Maki 2022-12-12 17:41:15 -08:00
parent cd2d593a6c
commit 9bf0a02eae
3 changed files with 26 additions and 11 deletions

View file

@ -210,10 +210,10 @@ impl WorkspaceDb {
}
fn get_center_pane_group(&self, workspace_id: WorkspaceId) -> Result<SerializedPaneGroup> {
self.get_pane_group(workspace_id, None)?
Ok(self.get_pane_group(workspace_id, None)?
.into_iter()
.next()
.context("No center pane group")
.unwrap_or_else(|| SerializedPaneGroup::Pane(SerializedPane { active: true, children: vec![] })))
}
fn get_pane_group(
@ -267,7 +267,7 @@ impl WorkspaceDb {
// Filter out panes and pane groups which don't have any children or items
.filter(|pane_group| match pane_group {
Ok(SerializedPaneGroup::Group { children, .. }) => !children.is_empty(),
Ok(SerializedPaneGroup::Pane(pane)) => !pane.children.is_empty(),
Ok(SerializedPaneGroup::Pane(pane)) => !pane.children.is_empty(),
_ => true,
})
.collect::<Result<_>>()