aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config/aerc.conf5
-rw-r--r--config/config.go1
-rw-r--r--doc/aerc-config.5.scd6
-rw-r--r--lib/msgstore.go3
-rw-r--r--widgets/account.go1
5 files changed, 14 insertions, 2 deletions
diff --git a/config/aerc.conf b/config/aerc.conf
index 8e503f5e..29063814 100644
--- a/config/aerc.conf
+++ b/config/aerc.conf
@@ -174,6 +174,11 @@ completion-popovers=true
# Default: false
#threading-enabled=false
+# Force client-side thread building
+#
+# Default: false
+#force-client-threads=false
+
[statusline]
# Describes the format string for the statusline.
#
diff --git a/config/config.go b/config/config.go
index 8a243c3a..e0c86082 100644
--- a/config/config.go
+++ b/config/config.go
@@ -46,6 +46,7 @@ type UIConfig struct {
EmptyDirlist string `ini:"empty-dirlist"`
MouseEnabled bool `ini:"mouse-enabled"`
ThreadingEnabled bool `ini:"threading-enabled"`
+ ForceClientThreads bool `ini:"force-client-threads"`
FuzzyComplete bool `ini:"fuzzy-complete"`
NewMessageBell bool `ini:"new-message-bell"`
Spinner string `ini:"spinner"`
diff --git a/doc/aerc-config.5.scd b/doc/aerc-config.5.scd
index a9d0cd99..55bc7a86 100644
--- a/doc/aerc-config.5.scd
+++ b/doc/aerc-config.5.scd
@@ -300,6 +300,12 @@ These options are configured in the *[ui]* section of aerc.conf.
Default: false
+*force-client-threads*
+ Force threads to be built client-side. Backends that don't support threading
+ will always build threads client side.
+
+ Default: false
+
## Contextual UI Configuration
diff --git a/lib/msgstore.go b/lib/msgstore.go
index 0eb5682a..99ae594e 100644
--- a/lib/msgstore.go
+++ b/lib/msgstore.go
@@ -60,13 +60,12 @@ type MessageStore struct {
func NewMessageStore(worker *types.Worker,
dirInfo *models.DirectoryInfo,
defaultSortCriteria []*types.SortCriterion,
- thread bool,
+ thread bool, clientThreads bool,
triggerNewEmail func(*models.MessageInfo),
triggerDirectoryChange func()) *MessageStore {
dirInfoUpdateDelay := 5 * time.Second
- var clientThreads bool
if !dirInfo.Caps.Thread {
clientThreads = true
}
diff --git a/widgets/account.go b/widgets/account.go
index 4fe6df72..6e03160a 100644
--- a/widgets/account.go
+++ b/widgets/account.go
@@ -295,6 +295,7 @@ func (acct *AccountView) onMessage(msg types.WorkerMessage) {
store = lib.NewMessageStore(acct.worker, msg.Info,
acct.GetSortCriteria(),
acct.UiConfig().ThreadingEnabled,
+ acct.UiConfig().ForceClientThreads,
func(msg *models.MessageInfo) {
acct.conf.Triggers.ExecNewEmail(acct.acct,
acct.conf, msg)