From 39599d1a26dc874d5fdb9c40edf3db77e44807a8 Mon Sep 17 00:00:00 2001 From: ChunEon Park Date: Mon, 25 Nov 2013 16:05:12 +0900 Subject: [PATCH] evas - code refactoring. merge duplicated(almost) functions to one. --- src/lib/evas/canvas/evas_object_smart.c | 47 ++++++++----------------- src/lib/evas/canvas/evas_render.c | 12 +------ 2 files changed, 16 insertions(+), 43 deletions(-) diff --git a/src/lib/evas/canvas/evas_object_smart.c b/src/lib/evas/canvas/evas_object_smart.c index 194ed3552f..6a49c4d2f2 100644 --- a/src/lib/evas/canvas/evas_object_smart.c +++ b/src/lib/evas/canvas/evas_object_smart.c @@ -1218,48 +1218,31 @@ _smart_changed(Eo *eo_obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) eo_do(eo_obj, evas_obj_smart_need_recalculate_set(1)); } -static Eina_Bool -_smart_members_changed_check(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj) -{ - Evas_Object_Protected_Data *o2; - - if (!evas_object_is_visible(eo_obj, obj) && - !evas_object_was_visible(eo_obj, obj)) - return EINA_FALSE; - - if (!obj->smart.smart) - { - if (obj->changed && !obj->clip.clipees) return EINA_TRUE; - return EINA_FALSE; - } - if (_evas_render_has_map(eo_obj, obj)) - { - if (((obj->changed_pchange) && (obj->changed_map)) || - (obj->changed_color)) return EINA_TRUE; - } - - EINA_INLIST_FOREACH(evas_object_smart_members_get_direct(eo_obj), o2) - if (_smart_members_changed_check(o2->object, o2)) return EINA_TRUE; - - return EINA_FALSE; -} - Eina_Bool evas_object_smart_changed_get(Evas_Object *eo_obj) { Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJ_CLASS); Evas_Object_Protected_Data *o2; - if (!obj->is_smart) + if (!evas_object_is_visible(eo_obj, obj) && + !evas_object_was_visible(eo_obj, obj)) + return EINA_FALSE; + + if (!obj->clip.clipees) { - if (obj->changed && !obj->clip.clipees) return EINA_TRUE; - else return EINA_FALSE; + if (obj->changed) + { + if (_evas_render_has_map(eo_obj, obj)) + { + if (((obj->changed_pchange) && (obj->changed_map)) || + (obj->changed_color)) return EINA_TRUE; + } + else if (!obj->is_smart) return EINA_TRUE; + } } - if (obj->changed_color) return EINA_TRUE; - EINA_INLIST_FOREACH(evas_object_smart_members_get_direct(eo_obj), o2) - if (_smart_members_changed_check(o2->object, o2)) return EINA_TRUE; + if (evas_object_smart_changed_get(o2->object)) return EINA_TRUE; return EINA_FALSE; } diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index 18d196f350..6f901704de 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -1251,17 +1251,7 @@ evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj, changed = EINA_TRUE; } - if (!changed) - { - if (obj->is_smart) - changed = evas_object_smart_changed_get(eo_obj); - else if (obj->changed) - { - if (((obj->changed_pchange) && (obj->changed_map)) || - (obj->changed_color)) - changed = EINA_TRUE; - } - } + if (!changed) changed = evas_object_smart_changed_get(eo_obj); /* mark the old map as invalid, so later we don't reuse it as a * cache. */