So NSApplicationDidBecomeActiveNotification isn't blocked so command-tabbing into GitUp isn't delayed because we're refreshing all the repositories synchronously. The work will still be done on the main thread, but it will now be less likely to be noticed (especially with Stage Manager activated, the reload will probably be done by the time the Stage Manager animation is done)
Steps to reproduce the problem before:
Open several big repositories
Switch to the Finder or any other app
cmd tab back into GitUp
Before:
Takes 1-2 seconds before macOS actually switches to GitUp.
With the async dispatch:
macOS instantly switches to GitUp, but the app is unresponsive for 1-2 seconds.
I AGREE TO THE GITUP CONTRIBUTOR LICENSE AGREEMENT
So
NSApplicationDidBecomeActiveNotification
isn't blocked so command-tabbing into GitUp isn't delayed because we're refreshing all the repositories synchronously. The work will still be done on the main thread, but it will now be less likely to be noticed (especially with Stage Manager activated, the reload will probably be done by the time the Stage Manager animation is done)Steps to reproduce the problem before:
Before: Takes 1-2 seconds before macOS actually switches to GitUp.
With the async dispatch: macOS instantly switches to GitUp, but the app is unresponsive for 1-2 seconds.
I AGREE TO THE GITUP CONTRIBUTOR LICENSE AGREEMENT