aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
Diffstat (limited to 'mail')
-rw-r--r--mail/ChangeLog5
-rw-r--r--mail/message-list.c18
2 files changed, 20 insertions, 3 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 6bd057bbaa..4ac26319b0 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,8 @@
+2001-12-20 Jon Trowbridge <trow@ximian.com>
+
+ * message-list.c (on_click): Makes the auto-undelete behavior when
+ changing message flags a bit more sane. (Fixes #17634)
+
2001-12-20 Ettore Perazzoli <ettore@ximian.com>
[Fixes #17377, Evolution doesn't work on multi-depth displays.]
diff --git a/mail/message-list.c b/mail/message-list.c
index 24fac02cbe..c2f9f127a8 100644
--- a/mail/message-list.c
+++ b/mail/message-list.c
@@ -2060,9 +2060,21 @@ on_click (ETree *tree, gint row, ETreePath path, gint col, GdkEvent *event, Mess
return FALSE;
}
- /* If a message was marked as deleted and the user flags it as important, undelete it */
- if ((col == COL_FLAGGED || col == COL_NEED_REPLY) && (info->flags & CAMEL_MESSAGE_DELETED))
- flag |= CAMEL_MESSAGE_DELETED;
+ /* If a message was marked as deleted and the user flags it as
+ important, marks it as needing a reply, marks it as unread,
+ then undelete the message. */
+ if (info->flags & CAMEL_MESSAGE_DELETED) {
+
+ if (col == COL_FLAGGED && !(info->flags & CAMEL_MESSAGE_FLAGGED))
+ flag |= CAMEL_MESSAGE_DELETED;
+
+ if (col == COL_NEED_REPLY && !(info->flags & CAMEL_MESSAGE_NEEDS_REPLY))
+ flag |= CAMEL_MESSAGE_DELETED;
+
+ if (col == COL_MESSAGE_STATUS && (info->flags & CAMEL_MESSAGE_SEEN))
+ flag |= CAMEL_MESSAGE_DELETED;
+
+ }
camel_folder_set_message_flags (list->folder, camel_message_info_uid (info), flag, ~info->flags);