diff options
author | Milan Crha <mcrha@redhat.com> | 2009-02-16 19:00:23 +0800 |
---|---|---|
committer | Milan Crha <mcrha@src.gnome.org> | 2009-02-16 19:00:23 +0800 |
commit | 5f0a7fea0d679915459fb28a98c82d61cb79b673 (patch) | |
tree | 8d882acdc94652af6a459b8acbf6ca7b4806aba5 /widgets/table/e-table-group-container.c | |
parent | 5a7c58ddeb7d9fc5749f0bdf3c4c2f50d0245a58 (diff) | |
download | gsoc2013-evolution-5f0a7fea0d679915459fb28a98c82d61cb79b673.tar.gz gsoc2013-evolution-5f0a7fea0d679915459fb28a98c82d61cb79b673.tar.zst gsoc2013-evolution-5f0a7fea0d679915459fb28a98c82d61cb79b673.zip |
** Fix for bug #550114
2009-02-16 Milan Crha <mcrha@redhat.com>
** Fix for bug #550114
* widgets/table/e-table-group.h:
* widgets/table/e-table-group.c:
* widgets/table/e-table-group-container.c:
* widgets/table/e-table-group-leaf.c:
Replaced 'compute_mouse_over' with 'get_mouse_over', now works
with cached values 'motion_row', 'motion_col'.
* widgets/table/e-table.c: (e_table_get_mouse_over_cell):
Mouse position not required anymore, remove it too then.
* calendar/gui/e-calendar-table.h: (ec_query_tooltip):
* calendar/gui/e-calendar-table.c: (ec_query_tooltip): Offer it to others too.
* calendar/gui/e-calendar-table.c: (query_tooltip_cb): Use above funtion.
Show proper tooltip in table with grouping columns.
* calendar/gui/e-memo-table.c: (query_tooltip_cb), (e_memo_table_init):
Show tooltips in memo view too.
svn path=/trunk/; revision=37275
Diffstat (limited to 'widgets/table/e-table-group-container.c')
-rw-r--r-- | widgets/table/e-table-group-container.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/widgets/table/e-table-group-container.c b/widgets/table/e-table-group-container.c index 0066b8b482..592cd1eee5 100644 --- a/widgets/table/e-table-group-container.c +++ b/widgets/table/e-table-group-container.c @@ -688,7 +688,7 @@ etgc_compute_location (ETableGroup *etg, int *x, int *y, int *row, int *col) } static void -etgc_compute_mouse_over (ETableGroup *etg, int x, int y, int *row, int *col) +etgc_get_mouse_over (ETableGroup *etg, int *row, int *col) { ETableGroupContainer *etgc = E_TABLE_GROUP_CONTAINER(etg); @@ -697,18 +697,23 @@ etgc_compute_mouse_over (ETableGroup *etg, int x, int y, int *row, int *col) if (col) *col = -1; - x -= GROUP_INDENT; - y -= TITLE_HEIGHT; - - if (x >= 0 && y >= 0 && etgc->children) { + if (etgc->children) { + int row_plus = 0; GList *list; + for (list = etgc->children; list; list = list->next) { ETableGroupContainerChildNode *child_node = (ETableGroupContainerChildNode *)list->data; ETableGroup *child = child_node->child; - e_table_group_compute_mouse_over (child, x, y, row, col); - if ((*row != -1) && (*col != -1)) + e_table_group_get_mouse_over (child, row, col); + + if ((!row || *row != -1) && (!col || *col != -1)) { + if (row) + *row += row_plus; return; + } + + row_plus += e_table_group_row_count (child); } } } @@ -914,7 +919,7 @@ etgc_class_init (ETableGroupContainerClass *klass) e_group_class->get_focus_column = etgc_get_focus_column; e_group_class->get_printable = etgc_get_printable; e_group_class->compute_location = etgc_compute_location; - e_group_class->compute_mouse_over = etgc_compute_mouse_over; + e_group_class->get_mouse_over = etgc_get_mouse_over; e_group_class->get_cell_geometry = etgc_get_cell_geometry; g_object_class_install_property (object_class, PROP_TABLE_ALTERNATING_ROW_COLORS, |