diff --git a/src/ViewModels/Launcher.cs b/src/ViewModels/Launcher.cs index 7b17290a7..81360545c 100644 --- a/src/ViewModels/Launcher.cs +++ b/src/ViewModels/Launcher.cs @@ -87,6 +87,7 @@ public bool TryOpenRepositoryFromPath(string repo) { var node = Preferences.Instance.FindOrAddNodeByRepositoryPath(repo, null, false); Welcome.Instance.Refresh(); + TrySwitchToContainingWorkspace(node); OpenRepositoryInTab(node, null); return true; } @@ -96,6 +97,7 @@ public bool TryOpenRepositoryFromPath(string repo) { var node = Preferences.Instance.FindOrAddNodeByRepositoryPath(test.StdOut.Trim(), null, false); Welcome.Instance.Refresh(); + TrySwitchToContainingWorkspace(node); OpenRepositoryInTab(node, null); return true; } @@ -112,6 +114,16 @@ public bool TryOpenRepositoryFromPath(string repo) return false; } + private void TrySwitchToContainingWorkspace(RepositoryNode node) + { + if (ActiveWorkspace.Repositories.Contains(node.Id)) + return; + + var owner = Preferences.Instance.Workspaces.Find(w => w.Repositories.Contains(node.Id)); + if (owner != null) + SwitchWorkspace(owner); + } + public void CloseAll() { _ignoreIndexChange = true;