aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mainwindow.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 434f5d0..19373e3 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -5555,11 +5555,13 @@ void MainWindow::applyPendingDashboardSelection()
if (m_model->threadAt(row).threadId != m_dashboardSelectThreadId)
continue;
- // The thread's first message is the ROOT row, not a child:
- // setThreadMessages drops depth 0 because the root stands for it, so
- // looking for it among the children finds nothing.
- if (m_model->data(thread, ThreadListModel::MessageIdRole).toString()
- == m_dashboardSelectMessageId) {
+ // Only a thread of one answers for its message on its own row. A
+ // CONVERSATION keeps its first message as child 0 since item 177, so
+ // matching the conversation row on the root's id reselected the row
+ // already showing the dashboard and the click did nothing visible.
+ if (!m_model->isConversationRow(thread)
+ && m_model->data(thread, ThreadListModel::MessageIdRole).toString()
+ == m_dashboardSelectMessageId) {
selectRowAt(thread);
m_dashboardSelectMessageId.clear();
m_dashboardSelectThreadId.clear();