diff options
Diffstat (limited to 'widgets')
-rw-r--r-- | widgets/account-wizard.go | 2 | ||||
-rw-r--r-- | widgets/account.go | 8 | ||||
-rw-r--r-- | widgets/aerc.go | 6 |
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 { |