aboutsummaryrefslogtreecommitdiffstats
path: root/mail/message-list.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/message-list.c')
-rw-r--r--mail/message-list.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/mail/message-list.c b/mail/message-list.c
index 6403c1549c..f29971dfa2 100644
--- a/mail/message-list.c
+++ b/mail/message-list.c
@@ -32,9 +32,11 @@
#include <glib/gunicode.h>
-#include <gconf/gconf.h>
#include <gconf/gconf-client.h>
+#include <gtk/gtkmain.h>
+#include <gtk/gtkinvisible.h>
+
#include <gal/util/e-util.h>
#include <gal/widgets/e-gui-utils.h>
#include <gal/e-table/e-cell-text.h>
@@ -774,9 +776,15 @@ ml_get_save_id (ETreeModel *etm, ETreePath path, void *data)
{
CamelMessageInfo *info;
+ if (e_tree_model_node_is_root(etm, path))
+ return g_strdup("root");
+
+ /* Note: etable can ask for the save_id while we're clearing it,
+ which is the only time data should be null */
info = e_tree_memory_node_get_data (E_TREE_MEMORY(etm), path);
if (info == NULL)
- return g_strdup("root");
+ return NULL;
+
return g_strdup (camel_message_info_uid(info));
}
@@ -1844,6 +1852,7 @@ clear_info(char *key, ETreePath *node, MessageList *ml)
info = e_tree_memory_node_get_data((ETreeMemory *)ml->model, node);
camel_folder_free_message_info(ml->folder, info);
+ e_tree_memory_node_set_data((ETreeMemory *)ml->model, node, NULL);
}
static void