aboutsummaryrefslogtreecommitdiffstats
path: root/mail/em-folder-tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/em-folder-tree.c')
-rw-r--r--mail/em-folder-tree.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/mail/em-folder-tree.c b/mail/em-folder-tree.c
index 25c7809c54..182a40df36 100644
--- a/mail/em-folder-tree.c
+++ b/mail/em-folder-tree.c
@@ -1775,9 +1775,12 @@ emft_get_folder_info__done (struct _EMFolderTreeGetFolderInfo *m)
gint fully_loaded = (m->flags & CAMEL_STORE_FOLDER_INFO_RECURSIVE) ? TRUE : FALSE;
do {
- em_folder_tree_model_set_folder_info (priv->model, &iter, si, fi, fully_loaded);
+ gboolean known = g_hash_table_lookup (si->full_hash, fi->full_name) != NULL;
- if ((fi = fi->next) != NULL)
+ if (!known)
+ em_folder_tree_model_set_folder_info (priv->model, &iter, si, fi, fully_loaded);
+
+ if ((fi = fi->next) != NULL && !known)
gtk_tree_store_append (model, &iter, &root);
} while (fi != NULL);
}
@@ -1863,8 +1866,7 @@ emft_tree_row_expanded (GtkTreeView *treeview, GtkTreeIter *root, GtkTreePath *t
return;
}
- /* do not set LOAD_SUBDIRS to FALSE until we are really done with loading */
- /* gtk_tree_store_set ((GtkTreeStore *)model, root, COL_BOOL_LOAD_SUBDIRS, FALSE, -1); */
+ gtk_tree_store_set ((GtkTreeStore *)model, root, COL_BOOL_LOAD_SUBDIRS, FALSE, -1);
m = mail_msg_new (&get_folder_info_info);
m->root = gtk_tree_row_reference_new (model, tree_path);