aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table/e-table-group-container.c
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2008-07-21 01:02:33 +0800
committerBharath Acharya <abharath@src.gnome.org>2008-07-21 01:02:33 +0800
commit9e2412ce340e7e39a1fe6532151afd4fdbe8bb37 (patch)
treedc3d5d334db47477f652ce95b49c72e232b48bb9 /widgets/table/e-table-group-container.c
parent3e0962231032ae53af4310b43dbced810cdc6100 (diff)
downloadgsoc2013-evolution-9e2412ce340e7e39a1fe6532151afd4fdbe8bb37.tar
gsoc2013-evolution-9e2412ce340e7e39a1fe6532151afd4fdbe8bb37.tar.gz
gsoc2013-evolution-9e2412ce340e7e39a1fe6532151afd4fdbe8bb37.tar.bz2
gsoc2013-evolution-9e2412ce340e7e39a1fe6532151afd4fdbe8bb37.tar.lz
gsoc2013-evolution-9e2412ce340e7e39a1fe6532151afd4fdbe8bb37.tar.xz
gsoc2013-evolution-9e2412ce340e7e39a1fe6532151afd4fdbe8bb37.tar.zst
gsoc2013-evolution-9e2412ce340e7e39a1fe6532151afd4fdbe8bb37.zip
Committing on behalf of Milan Crha <mcrha@redhat.com>
2008-07-15 Milan Crha <mcrha@redhat.com> ** Part of fix for bug #329821 * e-table-item.c: (find_cell): Do not consider last row's height till the bottom. * e-table-item.h: (e_table_item_compute_mouse_over): * e-table-item.c: (e_table_item_compute_mouse_over): * e-table-group-container.c: (etgc_compute_mouse_over), (etgc_class_init): * e-table-group-leaf.c: (etgl_compute_mouse_over), (etgl_class_init): * e-table.h: (e_table_get_mouse_over_cell): * e-table.c: (e_table_get_mouse_over_cell): * e-table-group.h: (struct ETableGroupClass), (e_table_group_compute_mouse_over): * e-table-group.c: (e_table_group_compute_mouse_over), (etg_class_init): Be able to calculate mouse-over position correctly, relatively to the ETableItem. svn path=/trunk/; revision=35778
Diffstat (limited to 'widgets/table/e-table-group-container.c')
-rw-r--r--widgets/table/e-table-group-container.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/widgets/table/e-table-group-container.c b/widgets/table/e-table-group-container.c
index 56562fd5b6..2c61eee775 100644
--- a/widgets/table/e-table-group-container.c
+++ b/widgets/table/e-table-group-container.c
@@ -689,6 +689,32 @@ 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)
+{
+ ETableGroupContainer *etgc = E_TABLE_GROUP_CONTAINER(etg);
+
+ if (row)
+ *row = -1;
+ if (col)
+ *col = -1;
+
+ x -= GROUP_INDENT;
+ y -= TITLE_HEIGHT;
+
+ if (x >= 0 && y >= 0 && etgc->children) {
+ 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))
+ return;
+ }
+ }
+}
+
+static void
etgc_get_cell_geometry (ETableGroup *etg, int *row, int *col, int *x, int *y, int *width, int *height)
{
ETableGroupContainer *etgc = E_TABLE_GROUP_CONTAINER(etg);
@@ -889,6 +915,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_cell_geometry = etgc_get_cell_geometry;
g_object_class_install_property (object_class, PROP_TABLE_ALTERNATING_ROW_COLORS,