diff options
author | Peter Williams <peterw@src.gnome.org> | 2000-08-12 00:15:46 +0800 |
---|---|---|
committer | Peter Williams <peterw@src.gnome.org> | 2000-08-12 00:15:46 +0800 |
commit | f5b8a56cc15dad01c1ef50475dab571b1a29eda4 (patch) | |
tree | 4aeef737e7afd2b902bc2db1bef313347d622a15 /mail | |
parent | 64c6a63cf22abea49895554cb7a058adc30cd0fc (diff) | |
download | gsoc2013-evolution-f5b8a56cc15dad01c1ef50475dab571b1a29eda4.tar gsoc2013-evolution-f5b8a56cc15dad01c1ef50475dab571b1a29eda4.tar.gz gsoc2013-evolution-f5b8a56cc15dad01c1ef50475dab571b1a29eda4.tar.bz2 gsoc2013-evolution-f5b8a56cc15dad01c1ef50475dab571b1a29eda4.tar.lz gsoc2013-evolution-f5b8a56cc15dad01c1ef50475dab571b1a29eda4.tar.xz gsoc2013-evolution-f5b8a56cc15dad01c1ef50475dab571b1a29eda4.tar.zst gsoc2013-evolution-f5b8a56cc15dad01c1ef50475dab571b1a29eda4.zip |
Freeze/thaw around multi-message folder operations (flag, move)
svn path=/trunk/; revision=4739
Diffstat (limited to 'mail')
-rw-r--r-- | mail/ChangeLog | 3 | ||||
-rw-r--r-- | mail/mail-ops.c | 13 |
2 files changed, 16 insertions, 0 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index 78fa34e912..61174a9550 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -38,6 +38,9 @@ 2000-08-11 Peter Williams <peterw@helixcode.com> + * mail-ops.c (do_refile_messages): Freeze the folders while moving. + (do_flag_messages): Same. + * mail-threads.c (get_password_clicked): Fix the case when the user /doesn't/ use escape to cancel the dialog :-/ (show_error_clicked): Same. diff --git a/mail/mail-ops.c b/mail/mail-ops.c index 851ba8e816..06d49d42c9 100644 --- a/mail/mail-ops.c +++ b/mail/mail-ops.c @@ -518,6 +518,9 @@ do_refile_messages (gpointer in_data, gpointer op_data, CamelException * ex) return; mail_tool_camel_lock_up (); + camel_folder_freeze (input->source); + camel_folder_freeze (dest); + for (i = 0; i < input->uids->len; i++) { camel_folder_move_message_to (input->source, input->uids->pdata[i], dest, @@ -527,6 +530,8 @@ do_refile_messages (gpointer in_data, gpointer op_data, CamelException * ex) break; } + camel_folder_thaw (input->source); + camel_folder_thaw (dest); camel_object_unref (CAMEL_OBJECT (dest)); mail_tool_camel_lock_down (); } @@ -625,6 +630,10 @@ do_flag_messages (gpointer in_data, gpointer op_data, CamelException * ex) flag_messages_input_t *input = (flag_messages_input_t *) in_data; gint i; + mail_tool_camel_lock_up (); + camel_folder_freeze (input->source); + mail_tool_camel_lock_down (); + for (i = 0; i < input->uids->len; i++) { if (input->invert) { const CamelMessageInfo *info; @@ -641,6 +650,10 @@ do_flag_messages (gpointer in_data, gpointer op_data, CamelException * ex) g_free (input->uids->pdata[i]); } + + mail_tool_camel_lock_up (); + camel_folder_thaw (input->source); + mail_tool_camel_lock_down (); } static void |