aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog6
-rw-r--r--mail/em-folder-tree.c6
2 files changed, 12 insertions, 0 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 99fe3e33c6..3aca47aee8 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,5 +1,11 @@
2004-02-05 Not Zed <NotZed@Ximian.com>
+ * em-folder-tree.c (emft_copy_folders__copy): sync the from folder
+ if we're going to delete it, otherwise we can't because its not
+ empty. See #53815.
+
+2004-02-05 Not Zed <NotZed@Ximian.com>
+
* em-folder-tree-model.c
(em_folder_tree_model_drag_data_received): hmm, another well
tested bit of code ... if you launch another thread you gotta copy
diff --git a/mail/em-folder-tree.c b/mail/em-folder-tree.c
index 4436cc46d1..776a5c9ef0 100644
--- a/mail/em-folder-tree.c
+++ b/mail/em-folder-tree.c
@@ -1041,6 +1041,9 @@ emft_copy_folders__copy (struct _mail_msg *mm)
camel_folder_transfer_messages_to (fromfolder, uids, tofolder, NULL, m->delete, &mm->ex);
camel_folder_free_uids (fromfolder, uids);
+ if (m->delete)
+ camel_folder_sync(fromfolder, TRUE, NULL);
+
camel_object_unref (fromfolder);
camel_object_unref (tofolder);
}
@@ -1061,6 +1064,9 @@ emft_copy_folders__copy (struct _mail_msg *mm)
d(printf ("deleting folder '%s'\n", info->full_name));
+ /* FIXME: we need to do something with the exception
+ since otherwise the users sees a failed operation
+ with no error message or even any warnings */
if (camel_store_supports_subscriptions (m->fromstore))
camel_store_unsubscribe_folder (m->fromstore, info->full_name, NULL);