aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog2
-rw-r--r--mail/em-folder-tree.c9
2 files changed, 7 insertions, 4 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 0c74c62c50..245db7055e 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -2,6 +2,8 @@
* em-folder-tree.c: Shorten the namespace of some internal
functions to just emft.
+ (emft_popup_delete_rec): Don't delete the contents of a folder if
+ it is a vFolder. Fixes bug #52029.
* em-mailer-prefs.c (em_mailer_prefs_construct): Use newv() here
and pass an array of GTypes - makes it simpler to change the order
diff --git a/mail/em-folder-tree.c b/mail/em-folder-tree.c
index 4359e7a8f0..ebffc45d61 100644
--- a/mail/em-folder-tree.c
+++ b/mail/em-folder-tree.c
@@ -717,7 +717,7 @@ emft_tree_row_expanded (GtkTreeView *treeview, GtkTreeIter *root, GtkTreePath *t
emft_update_model_expanded_state (priv, root, TRUE);
if (!load) {
- em_folder_tree_queue_save_state (emft);
+ emft_queue_save_state (emft);
return;
}
@@ -1102,7 +1102,6 @@ emft_popup_delete_rec (CamelStore *store, CamelFolderInfo *fi, CamelException *e
if (fi->child) {
emft_popup_delete_rec (store, fi->child, ex);
-
if (camel_exception_is_set (ex))
return;
}
@@ -1113,8 +1112,10 @@ emft_popup_delete_rec (CamelStore *store, CamelFolderInfo *fi, CamelException *e
if (camel_store_supports_subscriptions (store))
camel_store_unsubscribe_folder (store, fi->full_name, NULL);
- folder = camel_store_get_folder (store, fi->full_name, 0, NULL);
- if (folder) {
+ if (!(folder = camel_store_get_folder (store, fi->full_name, 0, ex)))
+ return;
+
+ if (!CAMEL_IS_VEE_FOLDER (folder)) {
GPtrArray *uids = camel_folder_get_uids (folder);
int i;