jackdanielz pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=435e17863bf3467008330e1b3b0293cab1f8720d
commit 435e17863bf3467008330e1b3b0293cab1f8720d Author: Daniel Zaoui <daniel.za...@samsung.com> Date: Mon Nov 2 13:14:41 2015 +0200 Improve dummy management Now the central manager knows if a session supports dummy objects and can choose whether or not if specific mode functions have to be invoked. This patch fixes a bug that was happening during C generation when a dummy was contained with other objects inside a container. In this case, the code that sets the contents of the container was not generated because the dummy object was expected but never created, leading to delayed properties never applied. --- src/lib/ffi_glue.c | 7 +++++-- src/lib/generator.c | 1 - 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/lib/ffi_glue.c b/src/lib/ffi_glue.c index f34d865..5553818 100644 --- a/src/lib/ffi_glue.c +++ b/src/lib/ffi_glue.c @@ -99,19 +99,20 @@ manager_widget_content_add(Gui_Session *session, const Gui_Widget *wdg, void *da Gui_Widget_Property *prop = obj_container_item_prop_get(ci); Gui_Widget *w = NULL; Gui_Value *val; + Eid *eid = NULL; values_lst = prop_value_get(prop); EINA_LIST_FOREACH(values_lst, itr2, val) { if (gui_value_type_get(val) == GUI_TYPE_OBJECT) { - Eid *eid = EID_ID_GET(val); + eid = EID_ID_GET(val); w = wdg_get(eid); } } /* Check for Eo object only if widget is active, */ - if (w) + if (w && (!eid_is_dummy(eid) || session_dummy_supported(session))) { if (!session_wdg_exists(session, w)) { @@ -336,6 +337,8 @@ manager_widget_create(Gui_Session *session, const Gui_Widget *wdg, void *data) Session_Mode mode = session_mode_get(session); + if (eid_is_dummy(wdg_eid_get(wdg)) && !session_dummy_supported(session)) return EINA_TRUE; + if (_modes_functions[mode].wdg_add && _modes_functions[mode].wdg_add(session, wdg, data)) { diff --git a/src/lib/generator.c b/src/lib/generator.c index a3fece3..cc1071b 100644 --- a/src/lib/generator.c +++ b/src/lib/generator.c @@ -437,7 +437,6 @@ _wdg_add_generate(Gui_Session *session, const Gui_Widget *wdg, void *data) { Widget_Context *wdg_ctx = data; - if (eid_is_dummy(wdg_eid_get(wdg))) return EINA_FALSE; /* Add widget's name into the list of variable declarations. */ wdg_ctx->declarations = eina_list_append(wdg_ctx->declarations, wdg_eid_get(wdg)); --