jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=7072fbc2bfe25881c1ba76bb5be0a6a01cea4539

commit 7072fbc2bfe25881c1ba76bb5be0a6a01cea4539
Author: Jean-Philippe Andre <[email protected]>
Date:   Mon Mar 13 23:34:22 2017 +0900

    edje: Fix rare issue with map
    
    In the following sequence, the swallowed object map property is
    never reset as it should have been:
    
    - swallow object
    - start program, change state to have a map
    - do something
    - start program, change state to have no map
        but before render, unswallow the object
    
    At this point, the object will never be un-mapped. This is weird.
    Somehow edje_calc avoids calling evas_object_map_[enable_]_set
    excessively, but I believe the issue is that the object does not
    need recalc. Its container needed recalc, not the child (which is
    mapped). I'm not 100% sure.
    
    Test case:
      elementary_test -to "Genlist Decorate Item Mode"
      Click on rotate, select a few items, scroll up and down. Enjoy.
    
    Ref T1551
    
    @fix
---
 src/lib/edje/edje_util.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c
index 158259e..3ea970c 100644
--- a/src/lib/edje/edje_util.c
+++ b/src/lib/edje/edje_util.c
@@ -6279,6 +6279,15 @@ _edje_real_part_swallow_clear(Edje *ed, Edje_Real_Part 
*rp)
    if ((rp->type != EDJE_RP_TYPE_SWALLOW) ||
        (!rp->typedata.swallow)) return;
    if (!rp->typedata.swallow->swallowed_object) return;
+   if (rp->chosen_description->map.on ||
+       (rp->invalidate
+#ifdef HAVE_EPHYSICS
+        && rp->prev_description && rp->prev_description->map.on
+#endif
+        ))
+     {
+        evas_object_map_enable_set(rp->typedata.swallow->swallowed_object, 
EINA_FALSE);
+     }
    _eo_unparent_helper(rp->typedata.swallow->swallowed_object, ed->obj);
    evas_object_smart_member_del(rp->typedata.swallow->swallowed_object);
    evas_object_event_callback_del_full(rp->typedata.swallow->swallowed_object,

-- 


Reply via email to