diff options
author | Dan Winship <danw@src.gnome.org> | 2000-08-12 23:45:38 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2000-08-12 23:45:38 +0800 |
commit | 88f9174bfd2a9177e7f9298ec40d6b7b331286a9 (patch) | |
tree | 36a51d942af1bc4bf2d735afbde1fd0a5977911b /mail/mail-callbacks.c | |
parent | fa3aea8519074d45acac74a3417ffb73d8487bd5 (diff) | |
download | gsoc2013-evolution-88f9174bfd2a9177e7f9298ec40d6b7b331286a9.tar.gz gsoc2013-evolution-88f9174bfd2a9177e7f9298ec40d6b7b331286a9.tar.zst gsoc2013-evolution-88f9174bfd2a9177e7f9298ec40d6b7b331286a9.zip |
Toggling a flag is an "instantaneous" operation, so if we're only doing
* mail-callbacks.c (delete_msg): Toggling a flag is an
"instantaneous" operation, so if we're only doing one, just do it
and return, rather than queueing it for the other thread. This
makes the "Delete" key work correctly (move to the next message)
again.
svn path=/trunk/; revision=4778
Diffstat (limited to 'mail/mail-callbacks.c')
-rw-r--r-- | mail/mail-callbacks.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/mail/mail-callbacks.c b/mail/mail-callbacks.c index 10e3c93b01..7850f9826c 100644 --- a/mail/mail-callbacks.c +++ b/mail/mail-callbacks.c @@ -449,8 +449,21 @@ delete_msg (GtkWidget *button, gpointer user_data) uids = g_ptr_array_new (); message_list_foreach (ml, enumerate_msg, uids); - mail_do_flag_messages (ml->folder, uids, TRUE, - CAMEL_MESSAGE_DELETED, CAMEL_MESSAGE_DELETED); + if (uids->len == 1) { + guint32 flags; + char *uid = uids->pdata[0]; + + mail_tool_camel_lock_up (); + flags = camel_folder_get_message_flags (ml->folder, uid); + camel_folder_set_message_flags (ml->folder, uid, + CAMEL_MESSAGE_DELETED, + ~flags); + mail_tool_camel_lock_down (); + } else { + mail_do_flag_messages (ml->folder, uids, TRUE, + CAMEL_MESSAGE_DELETED, + CAMEL_MESSAGE_DELETED); + } } void |