From 00b9ca503286d5dc43def31db713e853c8aeee13 Mon Sep 17 00:00:00 2001
From: Jeffas <dev@jeffas.io>
Date: Tue, 1 Oct 2019 18:01:49 +0100
Subject: Fix selected account to return for messageviewer

This ensures that the selectedaccount is returned if currently selected
tab is a messageviewer. This also makes it more extensible for adding
other ways of getting the selected account.
---
 widgets/aerc.go | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/widgets/aerc.go b/widgets/aerc.go
index 16fe8b7..af51a0f 100644
--- a/widgets/aerc.go
+++ b/widgets/aerc.go
@@ -269,11 +269,13 @@ func (aerc *Aerc) Logger() *log.Logger {
 }
 
 func (aerc *Aerc) SelectedAccount() *AccountView {
-	acct, ok := aerc.accounts[aerc.tabs.Tabs[aerc.tabs.Selected].Name]
-	if !ok {
-		return nil
+	switch tab := aerc.SelectedTab().(type) {
+	case *AccountView:
+		return tab
+	case *MessageViewer:
+		return tab.SelectedAccount()
 	}
-	return acct
+	return nil
 }
 
 func (aerc *Aerc) SelectedTab() ui.Drawable {
-- 
cgit v1.2.3