jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=6b81f4f220eada77e25ff0f9c7bc471b4d634ae0

commit 6b81f4f220eada77e25ff0f9c7bc471b4d634ae0
Author: Jean-Philippe Andre <[email protected]>
Date:   Fri Jan 16 11:45:28 2015 +0900

    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.
---
 src/lib/evas/canvas/evas_events.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/lib/evas/canvas/evas_events.c 
b/src/lib/evas/canvas/evas_events.c
index 39811c4..ae97030 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,
           {
              if (obj->is_smart)
                {
+                  Evas_Object_Protected_Data *clip = obj->cur->clipper;
                   int norep = 0;
 
+                  if (clip && clip->mask->is_mask && clip->precise_is_inside)
+                    if (!evas_object_is_inside(clip->object, clip, x, y))
+                      continue;
+
                   if ((obj->map->cur.usemap) && (obj->map->cur.map) &&
                       (obj->map->cur.map->count == 4))
                     {

-- 


Reply via email to