mirror of
https://github.com/jesseduffield/lazygit.git
synced 2026-09-10 07:36:27 -04:00
Bounce COMMIT_FILES model updates onto the UI thread
refreshCommitFilesContext now enqueues the Model.CommitFiles write and CommitFileTreeViewModel.SetTree() call via OnUIThread, instead of running them directly on the worker goroutine that drives async refreshes. This is what makes moving SwitchToDiffFilesController's post-refresh work into Then (previous commit) actually necessary, rather than just future-proofing. Same repo-switch hazard as the FILES bounce, closed the same way: it captures the repo generation before the git work and bounces through onUIThreadUnlessRepoChanged, so the write is dropped if the user switched repos while it was in flight. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
6203a4e411
commit
b203ec57ac
|
|
@ -635,14 +635,17 @@ func (self *RefreshHelper) RefreshAuthors(commits []*models.Commit) {
|
|||
func (self *RefreshHelper) refreshCommitFilesContext() error {
|
||||
from, to := self.c.Contexts().CommitFiles.GetFromAndToForDiff()
|
||||
from, reverse := self.c.Modes().Diffing.GetFromAndReverseArgsForDiff(from)
|
||||
generation := self.c.State().GetRepoGeneration()
|
||||
|
||||
files, err := self.c.Git().Loaders.CommitFileLoader.GetFilesInDiff(from, to, reverse)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
self.c.Model().CommitFiles = files
|
||||
self.c.Contexts().CommitFiles.CommitFileTreeViewModel.SetTree()
|
||||
|
||||
self.onUIThreadUnlessRepoChanged(generation, func() error {
|
||||
self.c.Model().CommitFiles = files
|
||||
self.c.Contexts().CommitFiles.CommitFileTreeViewModel.SetTree()
|
||||
return nil
|
||||
})
|
||||
self.refreshView(self.c.Contexts().CommitFiles)
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue