mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-24 20:08:10 +01:00
notmuch search: Fix thread dates to come only from matched messages.
We were properly sorting the threads based only on matched messages, but we were displaying the date based on the total messages in the thread, which led to inconsistent and very confusing results.
This commit is contained in:
parent
a5e9c06eb6
commit
ed2643333c
1 changed files with 13 additions and 4 deletions
|
@ -111,15 +111,24 @@ _thread_add_message (notmuch_thread_t *thread,
|
||||||
g_hash_table_insert (thread->tags, xstrdup (tag), NULL);
|
g_hash_table_insert (thread->tags, xstrdup (tag), NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
thread->total_messages++;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_thread_add_matched_message (notmuch_thread_t *thread,
|
||||||
|
notmuch_message_t *message)
|
||||||
|
{
|
||||||
|
time_t date;
|
||||||
|
|
||||||
date = notmuch_message_get_date (message);
|
date = notmuch_message_get_date (message);
|
||||||
|
|
||||||
if (date < thread->oldest || ! thread->total_messages)
|
if (date < thread->oldest || ! thread->matched_messages)
|
||||||
thread->oldest = date;
|
thread->oldest = date;
|
||||||
|
|
||||||
if (date > thread->newest || ! thread->total_messages)
|
if (date > thread->newest || ! thread->matched_messages)
|
||||||
thread->newest = date;
|
thread->newest = date;
|
||||||
|
|
||||||
thread->total_messages++;
|
thread->matched_messages++;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Create a new notmuch_thread_t object for the given thread ID,
|
/* Create a new notmuch_thread_t object for the given thread ID,
|
||||||
|
@ -201,7 +210,7 @@ _notmuch_thread_create (void *ctx,
|
||||||
notmuch_messages_has_more (messages);
|
notmuch_messages_has_more (messages);
|
||||||
notmuch_messages_advance (messages))
|
notmuch_messages_advance (messages))
|
||||||
{
|
{
|
||||||
thread->matched_messages++;
|
_thread_add_matched_message (thread, notmuch_messages_get (messages));
|
||||||
}
|
}
|
||||||
|
|
||||||
notmuch_query_destroy (matched_query);
|
notmuch_query_destroy (matched_query);
|
||||||
|
|
Loading…
Reference in a new issue