diff options
-rw-r--r-- | widgets/table/e-table-header-item.c | 3 | ||||
-rw-r--r-- | widgets/table/e-tree-table-adapter.c | 5 |
2 files changed, 7 insertions, 1 deletions
diff --git a/widgets/table/e-table-header-item.c b/widgets/table/e-table-header-item.c index cfbabb939f..2a7c36facf 100644 --- a/widgets/table/e-table-header-item.c +++ b/widgets/table/e-table-header-item.c @@ -819,6 +819,9 @@ ethi_draw (GnomeCanvasItem *item, GdkDrawable *drawable, int x, int y, int width if (x2 < x) continue; + if (x2 <= x1) + continue; + e_table_header_draw_button (drawable, ecol, GTK_WIDGET (canvas)->style, ethi->font, GTK_WIDGET_STATE (canvas), diff --git a/widgets/table/e-tree-table-adapter.c b/widgets/table/e-tree-table-adapter.c index 2660ab1096..90345f1f5f 100644 --- a/widgets/table/e-tree-table-adapter.c +++ b/widgets/table/e-tree-table-adapter.c @@ -659,7 +659,10 @@ etta_proxy_node_inserted (ETreeModel *etm, ETreePath parent, ETreePath child, ET row = find_first_child_node(etta, parent_row); children = e_tree_model_node_get_first_child(etta->priv->source, parent); - while (row != -1 && children != NULL && children == etta->priv->map_table[row]) { + while (row != -1 && + row < parent_row + parent_node->num_visible_children && + children != NULL && + children == etta->priv->map_table[row]) { children = e_tree_model_node_get_next(etta->priv->source, children); row = find_next_node(etta, row); } |