diff options
Diffstat (limited to 'widgets/e-table/e-cell-tree.c')
-rw-r--r-- | widgets/e-table/e-cell-tree.c | 20 |
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); } |