[evolution-patches] [PATCH 21/22] Fix issue with odd message lists. Validate them (cherry picked from commit a94f43582faef69317469c34dac8d0fc5985a5f6)
- From: yanli infradead org
- To: sragavan gnome org
- Cc: evolution-patches gnome org, Yan Li <yanli infradead org>
- Subject: [evolution-patches] [PATCH 21/22] Fix issue with odd message lists. Validate them (cherry picked from commit a94f43582faef69317469c34dac8d0fc5985a5f6)
- Date: Mon, 28 Dec 2009 13:32:53 +0800
From: Srinivasa Ragavan <sragavan gnome org>
Signed-off-by: Yan Li <yanli infradead org>
---
src/em-tree-store.c | 21 ++++++++++++++++++++-
1 files changed, 20 insertions(+), 1 deletions(-)
diff --git a/src/em-tree-store.c b/src/em-tree-store.c
index 6e60f8c..e2f5b64 100644
--- a/src/em-tree-store.c
+++ b/src/em-tree-store.c
@@ -218,6 +218,22 @@ emts_calc_path(EMTreeNode *node, GtkTreePath *path)
}
}
+static gboolean
+validate_path (EMTreeNode *node)
+{
+ EMTreeNode *save = node, *next;
+ gboolean valid = TRUE;
+ next = node->parent;
+
+ while (valid && next) {
+ if (next == save)
+ valid = FALSE;
+ next = next->parent;
+ }
+
+ return valid;
+}
+
static GtkTreePath *
emts_get_path(GtkTreeModel *tree_model, GtkTreeIter *iter)
{
@@ -228,7 +244,10 @@ emts_get_path(GtkTreeModel *tree_model, GtkTreeIter *iter)
g_return_val_if_fail (iter->stamp == EMTS (tree_model)->stamp, NULL);
path = gtk_tree_path_new();
- emts_calc_path((EMTreeNode *)iter->user_data, path);
+ if (validate_path ((EMTreeNode *)iter->user_data))
+ emts_calc_path((EMTreeNode *)iter->user_data, path);
+ else
+ gtk_tree_path_append_index(path, 0);
return path;
}
--
1.6.5.7
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]