1, 1, EINA_TRUE,
NULL);
}
- else
+ else if (obj->is_smart)
{
Eina_Inlist *contained;
Evas_Object_Protected_Data *member;
obj->is_frame = is_frame;
+ if (!obj->is_smart) return;
l = evas_object_smart_members_get_direct(obj->object);
EINA_INLIST_FOREACH(l, child)
const Eina_Inlist *
evas_object_smart_members_get_direct(const Evas_Object *eo_obj)
{
- MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
- return NULL;
- MAGIC_CHECK_END();
- if (!efl_isa(eo_obj, MY_CLASS)) return NULL;
Evas_Smart_Data *o = efl_data_scope_get(eo_obj, MY_CLASS);
if (!o) return NULL;
return o->contained;
evas_object_smart_changed_get(Evas_Object *eo_obj)
{
Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
- Evas_Object_Protected_Data *o2;
Eina_Bool has_map = EINA_FALSE;
/* If object is invisible, it's meaningless to figure out changed state
}
}
- EINA_INLIST_FOREACH(evas_object_smart_members_get_direct(eo_obj), o2)
- if (evas_object_smart_changed_get(o2->object)) return EINA_TRUE;
+ if (obj->is_smart)
+ {
+ Evas_Object_Protected_Data *o2;
+
+ EINA_INLIST_FOREACH(evas_object_smart_members_get_direct(eo_obj), o2)
+ if (evas_object_smart_changed_get(o2->object)) return EINA_TRUE;
+ }
return EINA_FALSE;
}
RD(0, " pre-render-done smart:%p|%p [%p, %i] | [%p, %i] has_map:%i had_map:%i\n",
obj->smart.smart,
- evas_object_smart_members_get_direct(eo_obj),
+ obj->is_smart ? evas_object_smart_members_get_direct(eo_obj) : NULL,
obj->map->cur.map, obj->map->cur.usemap,
obj->map->prev.map, obj->map->prev.usemap,
_evas_render_has_map(obj),
{
Evas_Object_Protected_Data *obj2;
Evas_Object *eo_obj = obj->object;
- const Eina_Inlist *il;
if ((!evas_object_is_visible(eo_obj, obj)) ||
(obj->clip.clipees) || (obj->cur->have_clipees)) return;
- il = evas_object_smart_members_get_direct(eo_obj);
- if (il)
+ if (obj->is_smart)
{
- EINA_INLIST_FOREACH(il, obj2)
+ EINA_INLIST_FOREACH(evas_object_smart_members_get_direct(eo_obj), obj2)
_evas_render2_object_render(e, obj2, uinf, l + 1);
}
else
Evas_Object *eo_obj = obj->object;
const Eina_Inlist *il;
- il = evas_object_smart_members_get_direct(eo_obj);
+ il = obj->is_smart ? evas_object_smart_members_get_direct(eo_obj) : NULL;
if (il)
{
if (!_evas_render2_th_main_obj_del_handle(e, obj)) return;
const Eina_Inlist *il;
if (!obj->changed) return;
- il = evas_object_smart_members_get_direct(eo_obj);
+ il = obj->is_smart ? evas_object_smart_members_get_direct(eo_obj) : NULL;
if (il)
{
obj->rect_del = EINA_FALSE;