aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/e-table/e-cell-tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'widgets/e-table/e-cell-tree.c')
-rw-r--r--widgets/e-table/e-cell-tree.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/widgets/e-table/e-cell-tree.c b/widgets/e-table/e-cell-tree.c
index 48ae9f4af1..5a055fce0e 100644
--- a/widgets/e-table/e-cell-tree.c
+++ b/widgets/e-table/e-cell-tree.c
@@ -411,7 +411,24 @@ ect_max_width (ECellView *ecell_view, int model_col, int view_col)
return max_width;
}
-
+/*
+ * ECellView::show_tooltip method
+ */
+static void
+ect_show_tooltip (ECellView *ecell_view, int model_col, int view_col, int row,
+ ETableTooltip *tooltip)
+{
+ ECellTreeView *tree_view = (ECellTreeView *) ecell_view;
+ ETreeModel *tree_model = e_cell_tree_get_tree_model (ecell_view->e_table_model, row);
+ ETreePath *node = e_cell_tree_get_node (tree_model, row);
+ int offset = offset_of_node (tree_model, node);
+
+ /* if the tooltip happened in the subcell, then handle it */
+
+ if (tooltip->cx > offset) {
+ e_cell_show_tooltip (tree_view->subcell_view, model_col, view_col, row, tooltip);
+ }
+}
/*
* ECellView::enter_edit method
@@ -572,6 +589,7 @@ e_cell_tree_class_init (GtkObjectClass *object_class)
ecc->print = ect_print;
ecc->print_height = ect_print_height;
ecc->max_width = ect_max_width;
+ ecc->show_tooltip = ect_show_tooltip;
parent_class = gtk_type_class (PARENT_TYPE);
}