aerc/lib
Tim Culverhouse 380cf13cff msgstore: run threadBuilder with no debounce on DirectoryContents msg
Commit 54a0a377e0 ("threads: debounce client-side thread building")
introduced the option to debounce threadbuilding to improve performance
of client side threads. This caused a UI regression during filtering of
mailboxes:

1. The mailbox contains the full set of message UIDs
2. User filters mailbox
3. A DirectoryContents message is received from worker with the proper
   UIDs to display
4. Debounce is started (in a separate go routine)
5. The value of msgStore.Uids() is used to show pending headers, but is
   not updated until the threadbuilder runs. The full set of UIDs is
   shown briefly
6. Debounce is over, threadbuilder runs, updates msgStore.Uids(), proper
   messages show.

Run the thread builder immediately upon receipt of a DirectoryContents
message, bypassing any debounce. Performance will remain the same: the
debounce is meant to prevent multiple sequential calls to the thread
builder during scrolling. This is unlikely to occur in rapid succession
from filtering or sorting.

Fixes: https://todo.sr.ht/~rjarry/aerc/76
Fixes: 54a0a377e0 ("threads: debounce client-side thread building")
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Acked-by: Robin Jarry <robin@jarry.cc>
2022-08-30 21:42:37 +02:00
..
auth lint: homogenize operations and minor fixes (gocritic) 2022-08-04 21:58:01 +02:00
calendar lint: ensure errors are at least logged (errcheck) 2022-08-04 21:57:57 +02:00
crypto go: removed io/ioutil 2022-08-22 09:30:19 +02:00
format lint: homogenize operations and minor fixes (gocritic) 2022-08-04 21:58:01 +02:00
marker mark: allow multiple visual selections 2022-08-22 09:30:37 +02:00
parse go: removed io/ioutil 2022-08-22 09:30:19 +02:00
sort go.mod: change base git url 2021-11-05 10:21:45 +01:00
statusline lint: homogenize operations and minor fixes (gocritic) 2022-08-04 21:58:01 +02:00
templates lint: apply new formatting rules 2022-08-01 10:44:52 +02:00
ui lint: homogenize operations and minor fixes (gocritic) 2022-08-04 21:58:01 +02:00
uidstore Create UIDStore package 2019-07-12 11:09:47 -04:00
attachment.go compose: refactor attachment handling 2022-07-02 17:52:49 +02:00
dirstore.go Move msgstore map to dirstore 2019-07-26 14:15:27 -04:00
history.go Add command history and cycling 2019-07-26 14:29:34 -04:00
keepalive_dummy.go format: reformat code with go 1.17 2021-12-11 23:24:08 +01:00
keepalive_linux.go format: reformat code with go 1.17 2021-12-11 23:24:08 +01:00
messageview.go go: removed io/ioutil 2022-08-22 09:30:19 +02:00
msgstore.go msgstore: run threadBuilder with no debounce on DirectoryContents msg 2022-08-30 21:42:37 +02:00
oauthbearer.go lint: work nicely with wrapped errors (errorlint) 2022-08-04 21:58:04 +02:00
open.go lint: homogenize operations and minor fixes (gocritic) 2022-08-04 21:58:01 +02:00
socket.go lint: ensure errors are at least logged (errcheck) 2022-08-04 21:57:57 +02:00
structure_helpers.go lint: homogenize operations and minor fixes (gocritic) 2022-08-04 21:58:01 +02:00
structure_helpers_test.go lint: apply new formatting rules 2022-08-01 10:44:52 +02:00
threadbuilder.go lint: ensure errors are at least logged (errcheck) 2022-08-04 21:57:57 +02:00