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
This commit is contained in:
Daniel Hirt 2014-02-17 21:18:19 +09:00 committed by Carsten Haitzler (Rasterman)
parent 7b896e784d
commit 08a6954904
1 changed files with 8 additions and 0 deletions

View File

@ -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);