Make terminal fallback correctly when unable to deserialize your cwd

This commit is contained in:
Mikayla Maki 2023-03-10 12:23:29 -08:00
parent 37d01c7fb3
commit ddbffd2c41

View file

@ -653,7 +653,7 @@ impl Item for TerminalView {
fn deserialize(
project: ModelHandle<Project>,
_workspace: WeakViewHandle<Workspace>,
workspace: WeakViewHandle<Workspace>,
workspace_id: workspace::WorkspaceId,
item_id: workspace::ItemId,
cx: &mut ViewContext<Pane>,
@ -663,7 +663,18 @@ impl Item for TerminalView {
let cwd = TERMINAL_DB
.get_working_directory(item_id, workspace_id)
.log_err()
.flatten();
.flatten()
.or_else(|| {
cx.read(|cx| {
let strategy = cx.global::<Settings>().terminal_strategy();
workspace
.upgrade(cx)
.map(|workspace| {
get_working_directory(workspace.read(cx), cx, strategy)
})
.flatten()
})
});
cx.update(|cx| {
let terminal = project.update(cx, |project, cx| {