diff --git a/src/ViewModels/Launcher.cs b/src/ViewModels/Launcher.cs index 774fbe0e41..f75358b0cb 100644 --- a/src/ViewModels/Launcher.cs +++ b/src/ViewModels/Launcher.cs @@ -1,4 +1,5 @@ using System; +using System.ComponentModel; using System.IO; using System.Text; @@ -26,7 +27,14 @@ public AvaloniaList Pages public Workspace ActiveWorkspace { get => _activeWorkspace; - private set => SetProperty(ref _activeWorkspace, value); + private set + { + if (_activeWorkspace != null) + _activeWorkspace.PropertyChanged -= OnActiveWorkspacePropertyChanged; + + if (SetProperty(ref _activeWorkspace, value) && _activeWorkspace != null) + _activeWorkspace.PropertyChanged += OnActiveWorkspacePropertyChanged; + } } public LauncherPage ActivePage @@ -520,6 +528,12 @@ private void CloseRepositoryInTab(LauncherPage page, bool removeFromWorkspace = page.Data = null; } + private void OnActiveWorkspacePropertyChanged(object sender, PropertyChangedEventArgs e) + { + if (e.PropertyName == nameof(Workspace.Name)) + PostActivePageChanged(); + } + private void PostActivePageChanged() { if (_ignoreIndexChange)