summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJaeun Choi <jaeun12.choi@samsung.com>2014-11-13 10:50:00 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2015-01-07 15:06:02 +0900
commit6e8e5e89b594670cbce979b272697c87108f39da (patch)
treeaf59a07b5a60d0d4dc7eb9e74eda25b71a770183 /src
parent73919ea43708b4caa980ca59c3d4a2fa8864aef2 (diff)
Evas masking: Implement event masking support
In case the clipper is a mask object, we should use precise event masking. By default precise_is_inside is not enabled because it is expensive, but it should probably be set by the application when they use masks as clippers. Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
Diffstat (limited to 'src')
-rw-r--r--src/lib/evas/canvas/evas_events.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/lib/evas/canvas/evas_events.c b/src/lib/evas/canvas/evas_events.c
index 56ae091d64..39811c44ab 100644
--- a/src/lib/evas/canvas/evas_events.c
+++ b/src/lib/evas/canvas/evas_events.c
@@ -122,7 +122,11 @@ _evas_event_object_list_raw_in_get(Evas *eo_e, Eina_List *in,
122 } 122 }
123 else 123 else
124 { 124 {
125 inside = evas_object_is_in_output_rect(eo_obj, obj, x, y, 1, 1); 125 Evas_Object_Protected_Data *clip = obj->cur->clipper;
126 if (clip && clip->mask->is_mask && clip->precise_is_inside)
127 inside = evas_object_is_inside(clip->object, clip, x, y);
128 else
129 inside = evas_object_is_in_output_rect(eo_obj, obj, x, y, 1, 1);
126 130
127 if (inside) 131 if (inside)
128 { 132 {