aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Toshok <toshok@helixcode.com>2000-12-14 07:32:24 +0800
committerChris Toshok <toshok@src.gnome.org>2000-12-14 07:32:24 +0800
commit565e65690d5ff1e29ef00dcb2d2ede355184d22f (patch)
tree5eb0486575ad8164c91c0a91153f94fefe7297e5
parenta000f7480bacf960f4cb3bdf2ff29e5f1af03f7b (diff)
downloadgsoc2013-evolution-565e65690d5ff1e29ef00dcb2d2ede355184d22f.tar.gz
gsoc2013-evolution-565e65690d5ff1e29ef00dcb2d2ede355184d22f.tar.zst
gsoc2013-evolution-565e65690d5ff1e29ef00dcb2d2ede355184d22f.zip
remove the silly logic - we pop up a tooltip regardless of where the mouse
2000-12-13 Chris Toshok <toshok@helixcode.com> * e-cell-tree.c (ect_show_tooltip): remove the silly logic - we pop up a tooltip regardless of where the mouse cursor hovers. just make sure it appears in the right place. (ect_event): reverse the change we make to the event after passing it to our subcell. this fixes the problem of the tree reacting twice to events (once with flags == 0, and once with flags == E_CELL_EDITING). * e-table-item.c (eti_event): destroy the tooltip window on a motion event. this can (and does) happen when we get a tooltip on a tree cell and the cursor isn't over the area where the tooltip pops up. svn path=/trunk/; revision=6979
-rw-r--r--widgets/table/e-cell-tree.c32
-rw-r--r--widgets/table/e-table-item.c5
2 files changed, 30 insertions, 7 deletions
diff --git a/widgets/table/e-cell-tree.c b/widgets/table/e-cell-tree.c
index de535be0d5..e4fe1efd99 100644
--- a/widgets/table/e-cell-tree.c
+++ b/widgets/table/e-cell-tree.c
@@ -324,7 +324,9 @@ ect_event (ECellView *ecell_view, GdkEvent *event, int model_col, int view_col,
else if (event->button.x < (offset - INDENT_AMOUNT))
return FALSE;
}
- default:
+ default: {
+ gint return_value;
+
/* modify the event and pass it off to our subcell_view */
switch (event->type) {
case GDK_BUTTON_PRESS:
@@ -339,7 +341,26 @@ ect_event (ECellView *ecell_view, GdkEvent *event, int model_col, int view_col,
default:
/* nada */
}
- return e_cell_event(tree_view->subcell_view, event, model_col, view_col, row, flags, actions);
+
+ return_value = e_cell_event(tree_view->subcell_view, event, model_col, view_col, row, flags, actions);
+
+ /* modify the event and pass it off to our subcell_view */
+ switch (event->type) {
+ case GDK_BUTTON_PRESS:
+ case GDK_BUTTON_RELEASE:
+ case GDK_2BUTTON_PRESS:
+ case GDK_3BUTTON_PRESS:
+ event->button.x += offset;
+ break;
+ case GDK_MOTION_NOTIFY:
+ event->motion.x += offset;
+ break;
+ default:
+ /* nada */
+ }
+
+ return return_value;
+ }
}
}
@@ -429,11 +450,8 @@ ect_show_tooltip (ECellView *ecell_view, int model_col, int view_col, int row,
if (node_image)
offset += gdk_pixbuf_get_width (node_image);
- /* if the tooltip happened in the subcell, then handle it */
- if (tooltip->cx > offset) {
- tooltip->x += offset;
- e_cell_show_tooltip (tree_view->subcell_view, model_col, view_col, row, col_width - offset, tooltip);
- }
+ tooltip->x += offset;
+ e_cell_show_tooltip (tree_view->subcell_view, model_col, view_col, row, col_width - offset, tooltip);
}
/*
diff --git a/widgets/table/e-table-item.c b/widgets/table/e-table-item.c
index 7eb0b07421..3d793a2f07 100644
--- a/widgets/table/e-table-item.c
+++ b/widgets/table/e-table-item.c
@@ -1697,6 +1697,11 @@ eti_event (GnomeCanvasItem *item, GdkEvent *e)
"cursor_col", &cursor_col,
NULL);
+ if (eti->tooltip->window) {
+ gtk_widget_destroy (eti->tooltip->window);
+ eti->tooltip->window = NULL;
+ }
+
if (eti->tooltip->timer > 0)
gtk_timeout_remove (eti->tooltip->timer);
eti->tooltip->col = col;