From 08a6954904c9dd50b45a2fdef859cb2e66fef1f3 Mon Sep 17 00:00:00 2001 From: Daniel Hirt Date: Mon, 17 Feb 2014 21:18:19 +0900 Subject: [PATCH] Edje/entry: Add propagation handling in mouse_out for link anchors Summary: Link anchors are set to allow event propagation. In some cases, this might lead to unwanted results in entry. Adding a flag to event_flags allows to control this in Elementary. One example that this fixes is having wrong mouse cursor handling when having the mouse out of the link anchor, back to the entry parent (in this case, additional handling in els_cursor.c is required so this event is ignored if event_flag is set with EVAS_EVENT_FLAG_ON_HOLD. Fixes T878. Reviewers: tasn CC: cedric Maniphest Tasks: T878 Differential Revision: https://phab.enlightenment.org/D561 --- src/lib/edje/edje_entry.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/lib/edje/edje_entry.c b/src/lib/edje/edje_entry.c index 5e0ac8458d..a4b1742053 100644 --- a/src/lib/edje/edje_entry.c +++ b/src/lib/edje/edje_entry.c @@ -823,6 +823,10 @@ _edje_anchor_mouse_in_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_ ignored = rp->part->ignore_flags & ev->event_flags; if ((!ev->event_flags) || (!ignored)) { + /* set to allow handling in elementary, in case we have + * an unwanted event propagation */ + ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; + n = an->name; if (!n) n = ""; len = 200 + strlen(n); @@ -846,6 +850,10 @@ _edje_anchor_mouse_out_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA ignored = rp->part->ignore_flags & ev->event_flags; if ((!ev->event_flags) || (!ignored)) { + /* set to allow handling in elementary, in case we have + * an unwanted event propagation */ + ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; + n = an->name; if (!n) n = ""; len = 200 + strlen(n);