summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Hirt <daniel.hirt@samsung.com>2014-02-17 21:18:19 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2014-02-17 21:18:19 +0900
commit08a6954904c9dd50b45a2fdef859cb2e66fef1f3 (patch)
treeba97592bb79afc131d2bec1728204f7a140a4d5f
parent7b896e784d44756ed29ef6de58ea3e45352cccd6 (diff)
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
-rw-r--r--src/lib/edje/edje_entry.c8
1 files changed, 8 insertions, 0 deletions
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_
823 ignored = rp->part->ignore_flags & ev->event_flags; 823 ignored = rp->part->ignore_flags & ev->event_flags;
824 if ((!ev->event_flags) || (!ignored)) 824 if ((!ev->event_flags) || (!ignored))
825 { 825 {
826 /* set to allow handling in elementary, in case we have
827 * an unwanted event propagation */
828 ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
829
826 n = an->name; 830 n = an->name;
827 if (!n) n = ""; 831 if (!n) n = "";
828 len = 200 + strlen(n); 832 len = 200 + strlen(n);
@@ -846,6 +850,10 @@ _edje_anchor_mouse_out_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA
846 ignored = rp->part->ignore_flags & ev->event_flags; 850 ignored = rp->part->ignore_flags & ev->event_flags;
847 if ((!ev->event_flags) || (!ignored)) 851 if ((!ev->event_flags) || (!ignored))
848 { 852 {
853 /* set to allow handling in elementary, in case we have
854 * an unwanted event propagation */
855 ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
856
849 n = an->name; 857 n = an->name;
850 if (!n) n = ""; 858 if (!n) n = "";
851 len = 200 + strlen(n); 859 len = 200 + strlen(n);