summaryrefslogtreecommitdiff
path: root/src/lib/evas/canvas
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2015-01-16 11:45:28 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2015-01-16 12:09:58 +0900
commit6b81f4f220eada77e25ff0f9c7bc471b4d634ae0 (patch)
tree61e0c9a5b7d5b822934fc8e4a4f12c4d3dd340c8 /src/lib/evas/canvas
parent836650e36462a81d5aec49ee227ff56e438b31bb (diff)
Evas masking: Fix precise_is_inside for masked smart objects
The flag should be set on the mask itself. Checking for (x,y) being inside the mask can be an expensive operation, so further optimization will be required.
Diffstat (limited to 'src/lib/evas/canvas')
-rw-r--r--src/lib/evas/canvas/evas_events.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/lib/evas/canvas/evas_events.c b/src/lib/evas/canvas/evas_events.c
index 39811c44ab..ae97030dcb 100644
--- a/src/lib/evas/canvas/evas_events.c
+++ b/src/lib/evas/canvas/evas_events.c
@@ -63,8 +63,13 @@ _evas_event_object_list_raw_in_get(Evas *eo_e, Eina_List *in,
63 { 63 {
64 if (obj->is_smart) 64 if (obj->is_smart)
65 { 65 {
66 Evas_Object_Protected_Data *clip = obj->cur->clipper;
66 int norep = 0; 67 int norep = 0;
67 68
69 if (clip && clip->mask->is_mask && clip->precise_is_inside)
70 if (!evas_object_is_inside(clip->object, clip, x, y))
71 continue;
72
68 if ((obj->map->cur.usemap) && (obj->map->cur.map) && 73 if ((obj->map->cur.usemap) && (obj->map->cur.map) &&
69 (obj->map->cur.map->count == 4)) 74 (obj->map->cur.map->count == 4))
70 { 75 {