diff --git a/src/GitBranchView/Forms/MainForm.cs b/src/GitBranchView/Forms/MainForm.cs index 88b2189..fb9f623 100644 --- a/src/GitBranchView/Forms/MainForm.cs +++ b/src/GitBranchView/Forms/MainForm.cs @@ -189,18 +189,18 @@ private async void UpdateRootFolders() .OrderBy(root => root.Path) .Select(root => new RootEntry(root)) .ToList(); - - rootEntries.ForEach(rootEntry => rootEntry.UpdateSize()); - UpdateSize(rootEntries); - flowLayoutPanel.Controls.AddRange(rootEntries.ToArray()); - rootEntries.FirstOrDefault()?.Focus(); - + foreach (RootEntry rootEntry in rootEntries) { rootEntry.SizeChanged += RootEntry_SizeChanged; rootEntry.ClonedSuccessfully += RootEntry_ClonedSuccessfully; } + rootEntries.ForEach(rootEntry => rootEntry.UpdateSize()); + UpdateSize(rootEntries); + flowLayoutPanel.Controls.AddRange(rootEntries.ToArray()); + rootEntries.FirstOrDefault()?.Focus(); + await Task.WhenAll(rootEntries.Select(rootEntry => rootEntry.UpdateFolders())); } finally @@ -256,8 +256,10 @@ private void UpdateSize(List rootEntries) if (rootEntry.Width == flowLayoutPanel.Width) continue; + rootEntry.SizeChanged -= RootEntry_SizeChanged; rootEntry.Width = flowLayoutPanel.Width; rootEntry.UpdateWidth(); + rootEntry.SizeChanged += RootEntry_SizeChanged; } }