diff options
author | Benjamin Otte <otte@redhat.com> | 2010-10-10 08:31:45 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2010-10-30 01:49:59 +0800 |
commit | b3a95d0299386bccbdebb967d15f4df02cf15891 (patch) | |
tree | 52b90e4b913bb1c4cd17df3335216bf518a6e01c /widgets/misc/e-canvas.c | |
parent | 08e71ba8ae72f333f017c25168b9ec85ea5954fa (diff) | |
download | gsoc2013-evolution-b3a95d0299386bccbdebb967d15f4df02cf15891.tar gsoc2013-evolution-b3a95d0299386bccbdebb967d15f4df02cf15891.tar.gz gsoc2013-evolution-b3a95d0299386bccbdebb967d15f4df02cf15891.tar.bz2 gsoc2013-evolution-b3a95d0299386bccbdebb967d15f4df02cf15891.tar.lz gsoc2013-evolution-b3a95d0299386bccbdebb967d15f4df02cf15891.tar.xz gsoc2013-evolution-b3a95d0299386bccbdebb967d15f4df02cf15891.tar.zst gsoc2013-evolution-b3a95d0299386bccbdebb967d15f4df02cf15891.zip |
gnome-canvas: Change GnomeCanvasItem->point vfunc
Previously the function returned the distance to the nearest item. Now
it only returns an item that is hit. This slightly changes semantics
(button events are no longer dispatched to the nearest item, but only to
the item actually clicked on), but makes the code way simpler and
actually does what one would expect.
Diffstat (limited to 'widgets/misc/e-canvas.c')
-rw-r--r-- | widgets/misc/e-canvas.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/widgets/misc/e-canvas.c b/widgets/misc/e-canvas.c index dfa529ec6b..0b24b84cb9 100644 --- a/widgets/misc/e-canvas.c +++ b/widgets/misc/e-canvas.c @@ -167,13 +167,12 @@ canvas_emit_event (GnomeCanvas *canvas, * invariant. */ #define HACKISH_AFFINE -static double +static GnomeCanvasItem * gnome_canvas_item_invoke_point (GnomeCanvasItem *item, gdouble x, gdouble y, gint cx, - gint cy, - GnomeCanvasItem **actual_item) + gint cy) { #ifdef HACKISH_AFFINE gdouble i2w[6], w2c[6], i2c[6], c2i[6]; @@ -193,7 +192,7 @@ gnome_canvas_item_invoke_point (GnomeCanvasItem *item, #endif return (* GNOME_CANVAS_ITEM_CLASS (G_OBJECT_GET_CLASS (item))->point) ( - item, x, y, cx, cy, actual_item); + item, x, y, cx, cy); } /* Re-picks the current item in the canvas, based on the event's coordinates. @@ -287,8 +286,7 @@ pick_current_item (GnomeCanvas *canvas, GdkEvent *event) /* find the closest item */ if (canvas->root->flags & GNOME_CANVAS_ITEM_VISIBLE) - gnome_canvas_item_invoke_point (canvas->root, x, y, cx, cy, - &canvas->new_current_item); + canvas->new_current_item = gnome_canvas_item_invoke_point (canvas->root, x, y, cx, cy); else canvas->new_current_item = NULL; } else |