forked from enlightenment/efl
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
This commit is contained in:
parent
635b4ad8f3
commit
7072fbc2bf
|
@ -6279,6 +6279,15 @@ _edje_real_part_swallow_clear(Edje *ed, Edje_Real_Part *rp)
|
||||||
if ((rp->type != EDJE_RP_TYPE_SWALLOW) ||
|
if ((rp->type != EDJE_RP_TYPE_SWALLOW) ||
|
||||||
(!rp->typedata.swallow)) return;
|
(!rp->typedata.swallow)) return;
|
||||||
if (!rp->typedata.swallow->swallowed_object) 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);
|
_eo_unparent_helper(rp->typedata.swallow->swallowed_object, ed->obj);
|
||||||
evas_object_smart_member_del(rp->typedata.swallow->swallowed_object);
|
evas_object_smart_member_del(rp->typedata.swallow->swallowed_object);
|
||||||
evas_object_event_callback_del_full(rp->typedata.swallow->swallowed_object,
|
evas_object_event_callback_del_full(rp->typedata.swallow->swallowed_object,
|
||||||
|
|
Loading…
Reference in New Issue