diff options
author | Jon Trowbridge <trow@ximian.com> | 2001-12-21 11:39:10 +0800 |
---|---|---|
committer | Jon Trowbridge <trow@src.gnome.org> | 2001-12-21 11:39:10 +0800 |
commit | fb540f5bfb3573322be73f00968583b723595046 (patch) | |
tree | 59d49d799b133b7030ce510c06e25cd6726adf3e /mail/message-list.c | |
parent | 292a70fc5d3e441815861bb719d3884b5eed03c8 (diff) | |
download | gsoc2013-evolution-fb540f5bfb3573322be73f00968583b723595046.tar.gz gsoc2013-evolution-fb540f5bfb3573322be73f00968583b723595046.tar.zst gsoc2013-evolution-fb540f5bfb3573322be73f00968583b723595046.zip |
Makes the auto-undelete behavior when changing message flags a bit more
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)
svn path=/trunk/; revision=15200
Diffstat (limited to 'mail/message-list.c')
-rw-r--r-- | mail/message-list.c | 18 |
1 files changed, 15 insertions, 3 deletions
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); |