diff options
author | Chris Toshok <toshok@helixcode.com> | 2000-12-14 07:32:24 +0800 |
---|---|---|
committer | Chris Toshok <toshok@src.gnome.org> | 2000-12-14 07:32:24 +0800 |
commit | 565e65690d5ff1e29ef00dcb2d2ede355184d22f (patch) | |
tree | 5eb0486575ad8164c91c0a91153f94fefe7297e5 | |
parent | a000f7480bacf960f4cb3bdf2ff29e5f1af03f7b (diff) | |
download | gsoc2013-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.c | 32 | ||||
-rw-r--r-- | widgets/table/e-table-item.c | 5 |
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; |