diff options
-rw-r--r-- | mail/ChangeLog | 3 | ||||
-rw-r--r-- | mail/message-thread.c | 5 | ||||
-rw-r--r-- | mail/message-thread.h | 1 |
3 files changed, 7 insertions, 2 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index f33cafe649..1462275027 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -8,6 +8,9 @@ nodes in the "subjects are common" case. Fixes a bug that would cause the message list to be truncated if this rule was invoked. + (sort_node): sort the tree by the original order of the messages + in the folder rather than by date. + 2000-07-07 Dan Winship <danw@helixcode.com> * message-list.c: Lots of changes. Store uids as node data on the diff --git a/mail/message-thread.c b/mail/message-thread.c index 9c0325ed21..a1abc23560 100644 --- a/mail/message-thread.c +++ b/mail/message-thread.c @@ -361,9 +361,9 @@ sort_node(const void *a, const void *b) a1 = a1->child; if (b1->message == NULL) b1 = b1->child; - if (a1->message->date_sent == b1->message->date_sent) + if (a1->order == b1->order) return 0; - if (a1->message->date_sent < b1->message->date_sent) + if (a1->order < b1->order) return 1; else return -1; @@ -429,6 +429,7 @@ thread_messages(CamelFolder *folder, GPtrArray *uids) c->message = mi; g_hash_table_insert(id_table, mi->message_id, c); } + c->order = i; container = c; ref = mi->references; p = NULL; diff --git a/mail/message-thread.h b/mail/message-thread.h index ffde0019b9..d66baacbdd 100644 --- a/mail/message-thread.h +++ b/mail/message-thread.h @@ -8,6 +8,7 @@ struct _container { const CamelMessageInfo *message; char *root_subject; /* cached root equivalent subject */ int re; /* re version of subject? */ + int order; /* the order of this message in the folder */ }; struct _container *thread_messages(CamelFolder *folder, GPtrArray *uids); |