diff --git a/src/lib/evas/canvas/evas_object_smart.c b/src/lib/evas/canvas/evas_object_smart.c index 1f3339fdb4..fc52c9be57 100644 --- a/src/lib/evas/canvas/evas_object_smart.c +++ b/src/lib/evas/canvas/evas_object_smart.c @@ -893,6 +893,8 @@ _evas_object_smart_need_recalculate_set(Eo *eo_obj, Evas_Smart_Data *o, Eina_Boo // XXX: do i need this? if (!obj || !obj->layer || obj->delete_me) return; + if (o->need_recalculate == value) return; + evas_object_async_block(obj); /* remove this entry from calc_list or processed list */ if (eina_clist_element_is_linked(&o->calc_entry)) @@ -904,8 +906,6 @@ _evas_object_smart_need_recalculate_set(Eo *eo_obj, Evas_Smart_Data *o, Eina_Boo else eina_clist_add_tail(&obj->layer->evas->calc_done, &o->calc_entry); - if (o->need_recalculate == value) return; - if (o->recalculate_cycle > 16382) { ERR("Object %p is not stable during recalc loop", eo_obj);