statusline: improve status line updating
Update statusline only for the selected account (to prevent other
updates from different accounts to interfere). Update status when
jumping/selecting/closing tabs.
Fixes cosmetic regressions introduced by commit feecc09b73
("statusline: make statusline folder-specific").
Signed-off-by: Koni Marti <koni.marti@gmail.com>
Acked-by: Robin Jarry <robin@jarry.cc>
This commit is contained in:
parent
73b64f2bf9
commit
af2a70983c
2 changed files with 10 additions and 1 deletions
|
@ -126,7 +126,9 @@ func (acct *AccountView) SetStatus(setters ...statusline.SetStateFunc) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (acct *AccountView) UpdateStatus() {
|
func (acct *AccountView) UpdateStatus() {
|
||||||
|
if acct.isSelected() {
|
||||||
acct.host.SetStatus(acct.state.StatusLine(acct.SelectedDirectory()))
|
acct.host.SetStatus(acct.state.StatusLine(acct.SelectedDirectory()))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (acct *AccountView) PushStatus(status string, expiry time.Duration) {
|
func (acct *AccountView) PushStatus(status string, expiry time.Duration) {
|
||||||
|
@ -226,6 +228,10 @@ func (acct *AccountView) SelectedMessagePart() *PartInfo {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (acct *AccountView) isSelected() bool {
|
||||||
|
return acct.aerc.NumTabs() > 0 && acct == acct.aerc.SelectedAccount()
|
||||||
|
}
|
||||||
|
|
||||||
func (acct *AccountView) onMessage(msg types.WorkerMessage) {
|
func (acct *AccountView) onMessage(msg types.WorkerMessage) {
|
||||||
switch msg := msg.(type) {
|
switch msg := msg.(type) {
|
||||||
case *types.Done:
|
case *types.Done:
|
||||||
|
|
|
@ -343,6 +343,7 @@ func (aerc *Aerc) NewTab(clickable ui.Drawable, name string) *ui.Tab {
|
||||||
|
|
||||||
func (aerc *Aerc) RemoveTab(tab ui.Drawable) {
|
func (aerc *Aerc) RemoveTab(tab ui.Drawable) {
|
||||||
aerc.tabs.Remove(tab)
|
aerc.tabs.Remove(tab)
|
||||||
|
aerc.UpdateStatus()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (aerc *Aerc) ReplaceTab(tabSrc ui.Drawable, tabTarget ui.Drawable, name string) {
|
func (aerc *Aerc) ReplaceTab(tabSrc ui.Drawable, tabTarget ui.Drawable, name string) {
|
||||||
|
@ -373,6 +374,7 @@ func (aerc *Aerc) SelectTab(name string) bool {
|
||||||
for i, tab := range aerc.tabs.Tabs {
|
for i, tab := range aerc.tabs.Tabs {
|
||||||
if tab.Name == name {
|
if tab.Name == name {
|
||||||
aerc.tabs.Select(i)
|
aerc.tabs.Select(i)
|
||||||
|
aerc.UpdateStatus()
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -383,6 +385,7 @@ func (aerc *Aerc) SelectTabIndex(index int) bool {
|
||||||
for i := range aerc.tabs.Tabs {
|
for i := range aerc.tabs.Tabs {
|
||||||
if i == index {
|
if i == index {
|
||||||
aerc.tabs.Select(i)
|
aerc.tabs.Select(i)
|
||||||
|
aerc.UpdateStatus()
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue