mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-05-11 20:36:03 +02:00
Fix inline status removal when recording demos
This commit is contained in:
parent
c3f0b5cb4a
commit
471ea39758
1 changed files with 17 additions and 1 deletions
|
@ -131,12 +131,28 @@ func (self *InlineStatusHelper) stop(opts InlineStatusOpts) {
|
|||
info.stop <- struct{}{}
|
||||
delete(self.contextsWithInlineStatus, opts.ContextKey)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
self.mutex.Unlock()
|
||||
|
||||
self.c.State().ClearItemOperation(opts.Item)
|
||||
|
||||
// When recording a demo we need to re-render the context again here to
|
||||
// remove the inline status. In normal usage we don't want to do this
|
||||
// because in the case of pushing a branch this would first reveal the ↑3↓7
|
||||
// status from before the push for a brief moment, to be replaced by a green
|
||||
// checkmark a moment later when the async refresh is done. This looks
|
||||
// jarring, so normally we rely on the async refresh to redraw with the
|
||||
// status removed. (In some rare cases, where there's no refresh at all, we
|
||||
// need to redraw manually in the controller; see TagsController.push() for
|
||||
// an example.)
|
||||
//
|
||||
// In demos, however, we turn all async refreshes into sync ones, because
|
||||
// this looks better in demos. In this case the refresh happens while the
|
||||
// status is still set, so we need to render again after removing it.
|
||||
if self.c.InDemo() {
|
||||
self.renderContext(opts.ContextKey)
|
||||
}
|
||||
}
|
||||
|
||||
func (self *InlineStatusHelper) renderContext(contextKey types.ContextKey) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue