aboutsummaryrefslogtreecommitdiffstats
path: root/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'widgets')
-rw-r--r--widgets/account-wizard.go2
-rw-r--r--widgets/account.go8
-rw-r--r--widgets/aerc.go6
3 files changed, 10 insertions, 6 deletions
diff --git a/widgets/account-wizard.go b/widgets/account-wizard.go
index 1645d457..42d14d17 100644
--- a/widgets/account-wizard.go
+++ b/widgets/account-wizard.go
@@ -535,7 +535,7 @@ func (wizard *AccountWizard) finish(tutorial bool) {
wizard.conf.Accounts = append(wizard.conf.Accounts, account)
view, err := NewAccountView(wizard.aerc, wizard.conf, &account,
- wizard.aerc.logger, wizard.aerc)
+ wizard.aerc.logger, wizard.aerc, nil)
if err != nil {
wizard.aerc.NewTab(errorScreen(err.Error(), wizard.conf.Ui),
account.Name)
diff --git a/widgets/account.go b/widgets/account.go
index 55c4f550..3bf104bd 100644
--- a/widgets/account.go
+++ b/widgets/account.go
@@ -47,8 +47,8 @@ func (acct *AccountView) UiConfig() config.UIConfig {
}
func NewAccountView(aerc *Aerc, conf *config.AercConfig, acct *config.AccountConfig,
- logger *log.Logger, host TabHost) (*AccountView, error) {
-
+ logger *log.Logger, host TabHost, deferLoop chan struct{},
+) (*AccountView, error) {
acctUiConf := conf.GetUiConfig(map[config.ContextType]string{
config.UI_CONTEXT_ACCOUNT: acct.Name,
})
@@ -90,6 +90,10 @@ func NewAccountView(aerc *Aerc, conf *config.AercConfig, acct *config.AccountCon
go func() {
defer logging.PanicHandler()
+ if deferLoop != nil {
+ <-deferLoop
+ }
+
worker.Backend.Run()
}()
diff --git a/widgets/aerc.go b/widgets/aerc.go
index c96932c4..db447e47 100644
--- a/widgets/aerc.go
+++ b/widgets/aerc.go
@@ -48,8 +48,8 @@ type Choice struct {
func NewAerc(conf *config.AercConfig, logger *log.Logger,
cmd func(cmd []string) error, complete func(cmd string) []string,
- cmdHistory lib.History) *Aerc {
-
+ cmdHistory lib.History, deferLoop chan struct{},
+) *Aerc {
tabs := ui.NewTabs(&conf.Ui)
statusbar := ui.NewStack(conf.Ui)
@@ -85,7 +85,7 @@ func NewAerc(conf *config.AercConfig, logger *log.Logger,
conf.Triggers.ExecuteCommand = cmd
for i, acct := range conf.Accounts {
- view, err := NewAccountView(aerc, conf, &conf.Accounts[i], logger, aerc)
+ view, err := NewAccountView(aerc, conf, &conf.Accounts[i], logger, aerc, deferLoop)
if err != nil {
tabs.Add(errorScreen(err.Error(), conf.Ui), acct.Name)
} else {