Fix :close on terminal panic
Executing :close on a terminal would panic due to it already having been removed. This is also related to the fact that removing a tab doesn't check for whether it actually found a tab to remove or not.
This commit is contained in:
parent
4541519225
commit
ee5b537d53
|
@ -26,6 +26,5 @@ func (_ Close) Execute(aerc *widgets.Aerc, args []string) error {
|
|||
}
|
||||
term, _ := aerc.SelectedTab().(*widgets.Terminal)
|
||||
term.Close(nil)
|
||||
aerc.RemoveTab(term)
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -57,13 +57,18 @@ func (tabs *Tabs) invalidateChild(d Drawable) {
|
|||
}
|
||||
|
||||
func (tabs *Tabs) Remove(content Drawable) {
|
||||
match := false
|
||||
for i, tab := range tabs.Tabs {
|
||||
if tab.Content == content {
|
||||
tabs.Tabs = append(tabs.Tabs[:i], tabs.Tabs[i+1:]...)
|
||||
tabs.removeHistory(i)
|
||||
match = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if !match {
|
||||
return
|
||||
}
|
||||
index, ok := tabs.popHistory()
|
||||
if ok {
|
||||
tabs.Select(index)
|
||||
|
|
Loading…
Reference in New Issue