aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table/e-table-group-container.c
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2009-02-16 19:00:23 +0800
committerMilan Crha <mcrha@src.gnome.org>2009-02-16 19:00:23 +0800
commit5f0a7fea0d679915459fb28a98c82d61cb79b673 (patch)
tree8d882acdc94652af6a459b8acbf6ca7b4806aba5 /widgets/table/e-table-group-container.c
parent5a7c58ddeb7d9fc5749f0bdf3c4c2f50d0245a58 (diff)
downloadgsoc2013-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.c21
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,