raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=08a6954904c9dd50b45a2fdef859cb2e66fef1f3

commit 08a6954904c9dd50b45a2fdef859cb2e66fef1f3
Author: Daniel Hirt <daniel.h...@samsung.com>
Date:   Mon Feb 17 21:18:19 2014 +0900

    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 5e0ac84..a4b1742 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);

-- 


Reply via email to