diff --git a/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/BranchesView.cs b/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/BranchesView.cs index 1ef7aa7b2..2c4aeeac2 100644 --- a/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/BranchesView.cs +++ b/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/BranchesView.cs @@ -88,13 +88,9 @@ private void RepositoryOnLocalAndRemoteBranchListChanged(CacheUpdateEvent cacheU { if (!lastLocalAndRemoteBranchListChangedEvent.Equals(cacheUpdateEvent)) { - new ActionTask(TaskManager.Token, () => - { - lastLocalAndRemoteBranchListChangedEvent = cacheUpdateEvent; - localAndRemoteBranchListHasUpdate = true; - Redraw(); - }) - { Affinity = TaskAffinity.UI }.Start(); + lastLocalAndRemoteBranchListChangedEvent = cacheUpdateEvent; + localAndRemoteBranchListHasUpdate = true; + Redraw(); } } @@ -114,16 +110,11 @@ private void MaybeUpdateData() private void AttachHandlers(IRepository repository) { - if (repository == null) - return; - repository.LocalAndRemoteBranchListChanged += RepositoryOnLocalAndRemoteBranchListChanged; } private void DetachHandlers(IRepository repository) { - if (repository == null) - return; repository.LocalAndRemoteBranchListChanged -= RepositoryOnLocalAndRemoteBranchListChanged; } diff --git a/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/SettingsView.cs b/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/SettingsView.cs index 91afd8fe0..5b3052399 100644 --- a/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/SettingsView.cs +++ b/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/SettingsView.cs @@ -51,12 +51,8 @@ public override void OnEnable() userSettingsView.OnEnable(); AttachHandlers(Repository); - if (Repository != null) - { - Repository.CheckCurrentRemoteChangedEvent(lastCurrentRemoteChangedEvent); - Repository.CheckLocksChangedEvent(lastLocksChangedEvent); - } - + Repository.CheckCurrentRemoteChangedEvent(lastCurrentRemoteChangedEvent); + Repository.CheckLocksChangedEvent(lastLocksChangedEvent); metricsHasChanged = true; } diff --git a/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/Window.cs b/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/Window.cs index 1171f90d2..0b2a23af8 100644 --- a/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/Window.cs +++ b/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/Window.cs @@ -129,9 +129,8 @@ public override void OnRepositoryChanged(IRepository oldRepository) if (Repository != null && activeTab == SubTab.InitProject) { changeTab = SubTab.History; + UpdateActiveTab(); } - - UpdateActiveTab(); } public override void OnSelectionChange() @@ -317,7 +316,6 @@ private void DoToolbarGUI() // Subtabs & toolbar GUILayout.BeginHorizontal(EditorStyles.toolbar); { - changeTab = activeTab; EditorGUI.BeginChangeCheck(); { if (HasRepository) @@ -352,7 +350,8 @@ private void UpdateActiveTab() { var fromView = ActiveView; activeTab = changeTab; - SwitchView(fromView, ActiveView); + var toView = ActiveView; + SwitchView(fromView, toView); } } @@ -363,6 +362,7 @@ private void SwitchView(Subview fromView, Subview toView) if (fromView != null) fromView.OnDisable(); toView.OnEnable(); + toView.OnDataUpdate(); // this triggers a repaint Repaint(); @@ -424,9 +424,9 @@ public void ShowNotification(GUIContent content, float timeout) base.ShowNotification(content); } - private static SubTab TabButton(SubTab tab, string title, SubTab activeTab) + private static SubTab TabButton(SubTab tab, string title, SubTab currentTab) { - return GUILayout.Toggle(activeTab == tab, title, EditorStyles.toolbarButton) ? tab : activeTab; + return GUILayout.Toggle(currentTab == tab, title, EditorStyles.toolbarButton) ? tab : currentTab; } private Subview ToView(SubTab tab)