aboutsummaryrefslogtreecommitdiffstats
path: root/src/mainwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainwindow.cpp')
-rw-r--r--src/mainwindow.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index abc7875..41dbe9c 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -2756,6 +2756,19 @@ void MainWindow::wireWorker()
connect(m_worker, &NotmuchWorker::threadMessagesResolved,
this, &MainWindow::onThreadMessagesResolved);
+ // Item 192's second half. Indexing a file is not repainting a view: the
+ // sent copy became findable the instant it was indexed, and a Sent view
+ // already on screen still did not show it, because nothing re-ran the
+ // query. Both index entry points report here, so a saved draft, a sent
+ // copy and a removed draft each reach the list that queries their folder.
+ //
+ // refreshCurrentQuery(), NOT runCurrentQuery(): a send must not clear the
+ // selection, the expansions or the undo stack of the window behind the
+ // composer. It returns early when no query has run and reconciles rather
+ // than replacing, so a view of another folder simply sees no change.
+ connect(m_worker, &NotmuchWorker::indexChanged,
+ this, &MainWindow::refreshCurrentQuery);
+
m_workerThread.start();
// Queued behind the thread start, so the completer has real tags as soon