seoz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=ea7eab86c34de44171f299d5e6a5a0983346230e
commit ea7eab86c34de44171f299d5e6a5a0983346230e Author: Daniel Juyung Seo <seojuyu...@gmail.com> Date: Sat Oct 5 17:59:58 2013 +0900 elm_layout: Internal refactoring about layout frozen check. 1. Moved frozen variable to more proper position. Elm_Widget_Smart_Data -> Elm_Layout_Smart_Data. 2. Check frozen at one place. This makes codes cleaner and reduces human mistakes. --- src/lib/elm_layout.c | 30 ++++++++---------------------- src/lib/elm_widget.h | 1 - src/lib/elm_widget_layout.h | 1 + 3 files changed, 9 insertions(+), 23 deletions(-) diff --git a/src/lib/elm_layout.c b/src/lib/elm_layout.c index 31184e2..d863260 100644 --- a/src/lib/elm_layout.c +++ b/src/lib/elm_layout.c @@ -84,7 +84,6 @@ _on_sub_object_size_hint_change(void *data, void *event_info __UNUSED__) { ELM_WIDGET_DATA_GET_OR_RETURN(data, wd); - if (wd->frozen) return; eo_do(data, elm_obj_layout_sizing_eval()); } @@ -501,10 +500,8 @@ _elm_layout_smart_sub_object_del(Eo *obj, void *_pd, va_list *list) break; } - if (wd->frozen) goto end; eo_do(obj, elm_obj_layout_sizing_eval()); -end: if (ret) *ret = EINA_TRUE; } @@ -1070,8 +1067,6 @@ _elm_layout_smart_content_set(Eo *obj, void *_pd, va_list *list) _icon_signal_emit(sd, sub_d, EINA_TRUE); } - if (wd->frozen) goto end; - eo_do(obj, elm_obj_layout_sizing_eval()); end: @@ -1230,8 +1225,7 @@ _elm_layout_smart_text_set(Eo *obj, void *_pd, va_list *list) _text_signal_emit(sd, sub_d, !!text); - if (!wd->frozen) - eo_do(obj, elm_obj_layout_sizing_eval()); + eo_do(obj, elm_obj_layout_sizing_eval()); if (_elm_config->access_mode == ELM_ACCESS_MODE_ON && wd->can_access && !(sub_d->obj)) @@ -1315,10 +1309,8 @@ _elm_layout_smart_box_append(Eo *obj, void *_pd, va_list *list) sub_d->obj = child; sd->subs = eina_list_append(sd->subs, sub_d); - if (wd->frozen) goto end; eo_do(obj, elm_obj_layout_sizing_eval()); -end: if (ret) *ret = EINA_TRUE; } @@ -1368,10 +1360,8 @@ _elm_layout_smart_box_prepend(Eo *obj, void *_pd, va_list *list) sub_d->obj = child; sd->subs = eina_list_prepend(sd->subs, sub_d); - if (wd->frozen) goto end;; eo_do(obj, elm_obj_layout_sizing_eval()); -end: if (ret) *ret = EINA_TRUE; } @@ -1429,10 +1419,8 @@ _elm_layout_smart_box_insert_before(Eo *obj, void *_pd, va_list *list) evas_object_event_callback_add ((Evas_Object *)reference, EVAS_CALLBACK_DEL, _box_reference_del, sub_d); - if (wd->frozen) goto end; eo_do(obj, elm_obj_layout_sizing_eval()); -end: if (ret) *ret = EINA_TRUE; } @@ -1486,10 +1474,8 @@ _elm_layout_smart_box_insert_at(Eo *obj, void *_pd, va_list *list) sub_d->p.box.pos = pos; sd->subs = eina_list_append(sd->subs, sub_d); - if (wd->frozen) goto end; eo_do(obj, elm_obj_layout_sizing_eval()); -end: if (ret) *ret = EINA_TRUE; } @@ -1643,10 +1629,8 @@ _elm_layout_smart_table_pack(Eo *obj, void *_pd, va_list *list) sub_d->p.table.rowspan = rowspan; sd->subs = eina_list_append(sd->subs, sub_d); - if (wd->frozen) goto end; eo_do(obj, elm_obj_layout_sizing_eval()); -end: if (ret) *ret = EINA_TRUE; } @@ -1794,7 +1778,7 @@ static void _elm_layout_smart_sizing_eval(Eo *obj, void *_pd, va_list *list EINA_UNUSED) { Elm_Layout_Smart_Data *sd = _pd; - + if (sd->frozen) return; if (sd->needs_size_calc) return; sd->needs_size_calc = EINA_TRUE; @@ -1817,10 +1801,11 @@ _elm_layout_smart_freeze(Eo *obj, void *_pd EINA_UNUSED, va_list *list) int int_ret = 1; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); + ELM_LAYOUT_DATA_GET(obj, sd); - if ((wd->frozen)++ != 0) + if ((sd->frozen)++ != 0) { - int_ret = wd->frozen; + int_ret = sd->frozen; goto end; } @@ -1846,10 +1831,11 @@ _elm_layout_smart_thaw(Eo *obj, void *_pd EINA_UNUSED, va_list *list) int int_ret = 0; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); + ELM_LAYOUT_DATA_GET(obj, sd); - if (--(wd->frozen) != 0) + if (--(sd->frozen) != 0) { - int_ret = wd->frozen; + int_ret = sd->frozen; goto end; } diff --git a/src/lib/elm_widget.h b/src/lib/elm_widget.h index 64dc763..0bc8854 100644 --- a/src/lib/elm_widget.h +++ b/src/lib/elm_widget.h @@ -413,7 +413,6 @@ typedef struct _Elm_Widget_Smart_Data void (*on_show_region)(void *data, Evas_Object *obj); - int frozen; int orient_mode; /* -1 is disabled */ Eina_Bool drag_x_locked : 1; diff --git a/src/lib/elm_widget_layout.h b/src/lib/elm_widget_layout.h index b81def3..514eefd 100644 --- a/src/lib/elm_widget_layout.h +++ b/src/lib/elm_widget_layout.h @@ -81,6 +81,7 @@ typedef struct _Elm_Layout_Smart_Data Eina_List *edje_signals; Eina_List *parts_cursors; const char *klass, *group; + int frozen; /**< Layout freeze counter */ Eina_Bool needs_size_calc : 1; } Elm_Layout_Smart_Data; --