@@ -44,6 +44,7 @@ class BranchesView : Subview
44
44
[ NonSerialized ] private BranchTreeNode newNodeSelection ;
45
45
[ NonSerialized ] private BranchesMode targetMode ;
46
46
[ NonSerialized ] private bool favoritesHasChanged ;
47
+ [ NonSerialized ] private bool branchesHasChanged ;
47
48
48
49
[ SerializeField ] private BranchTreeNode activeBranchNode ;
49
50
[ SerializeField ] private BranchTreeNode localRoot ;
@@ -65,6 +66,7 @@ public override void OnEnable()
65
66
base . OnEnable ( ) ;
66
67
AttachHandlers ( Repository ) ;
67
68
favoritesHasChanged = true ;
69
+ branchesHasChanged = true ;
68
70
}
69
71
70
72
public override void OnDisable ( )
@@ -86,6 +88,12 @@ private void MaybeUpdateData()
86
88
favoritesList = Manager . LocalSettings . Get ( FavoritesSetting , new List < string > ( ) ) ;
87
89
favoritesHasChanged = false ;
88
90
}
91
+
92
+ if ( branchesHasChanged )
93
+ {
94
+ RunRefreshEmbeddedOnMainThread ( ) ;
95
+ branchesHasChanged = false ;
96
+ }
89
97
}
90
98
91
99
public override void OnRepositoryChanged ( IRepository oldRepository )
@@ -114,22 +122,15 @@ private void DetachHandlers(IRepository repository)
114
122
repository . OnCurrentRemoteChanged -= HandleRepositoryBranchChangeEvent ;
115
123
}
116
124
117
- private void RunRefreshEmbeddedOnMainThread ( )
118
- {
119
- new ActionTask ( TaskManager . Token , _ => RefreshEmbedded ( ) )
120
- . ScheduleUI ( TaskManager ) ;
121
- }
122
-
123
125
private void HandleRepositoryBranchChangeEvent ( string obj )
124
126
{
125
127
RunRefreshEmbeddedOnMainThread ( ) ;
126
128
}
127
129
128
- public override void Refresh ( )
130
+ private void RunRefreshEmbeddedOnMainThread ( )
129
131
{
130
- base . Refresh ( ) ;
131
-
132
- RefreshEmbedded ( ) ;
132
+ new ActionTask ( TaskManager . Token , _ => RefreshEmbedded ( ) )
133
+ . ScheduleUI ( TaskManager ) ;
133
134
}
134
135
135
136
public void RefreshEmbedded ( )
@@ -297,9 +298,9 @@ private void OnLocalBranchesUpdate(IEnumerable<GitBranch> list)
297
298
newLocalBranches = new List < GitBranch > ( list ) ;
298
299
}
299
300
300
- private void OnRemoteBranchesUpdate ( IEnumerable < GitBranch > list )
301
+ private void OnRemoteBranchesUpdate ( IEnumerable < GitBranch > newRemoteBranches )
301
302
{
302
- BuildTree ( newLocalBranches , list ) ;
303
+ BuildTree ( newLocalBranches , newRemoteBranches ) ;
303
304
newLocalBranches . Clear ( ) ;
304
305
}
305
306
0 commit comments