diff options
-rw-r--r-- | mail/ChangeLog | 2 | ||||
-rw-r--r-- | mail/em-folder-tree.c | 9 |
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; |