diff --git a/src/lib/elementary/efl_ui_focus_manager_calc.c b/src/lib/elementary/efl_ui_focus_manager_calc.c index 62a33b213b..d6066bb7fe 100644 --- a/src/lib/elementary/efl_ui_focus_manager_calc.c +++ b/src/lib/elementary/efl_ui_focus_manager_calc.c @@ -552,7 +552,6 @@ _efl_ui_focus_manager_calc_register_logical(Eo *obj, Efl_Ui_Focus_Manager_Calc_D tmp = eina_list_clone(T(pnode).saved_order); efl_ui_focus_manager_calc_update_order(obj, parent, tmp); - eina_list_free(tmp); } return EINA_TRUE; @@ -595,7 +594,6 @@ _efl_ui_focus_manager_calc_register(Eo *obj, Efl_Ui_Focus_Manager_Calc_Data *pd, tmp = eina_list_clone(T(pnode).saved_order); efl_ui_focus_manager_calc_update_order(obj, parent, tmp); - eina_list_free(tmp); } return EINA_TRUE; @@ -695,7 +693,7 @@ _efl_ui_focus_manager_calc_update_order(Eo *obj, Efl_Ui_Focus_Manager_Calc_Data return; ELM_SAFE_FREE(T(pnode).saved_order, eina_list_free); - T(pnode).saved_order = eina_list_clone(order); + T(pnode).saved_order = order; //get all nodes from the subset EINA_LIST_FOREACH(order, n, o) @@ -728,14 +726,14 @@ _efl_ui_focus_manager_calc_update_children(Eo *obj EINA_UNUSED, Efl_Ui_Focus_Man Node *pnode; Efl_Ui_Focus_Object *o; Eina_Bool fail = EINA_FALSE; - Eina_List *node_order = NULL, *n; + Eina_List *node_order = NULL; pnode = node_get(obj, pd, parent); if (!pnode) return EINA_FALSE; //get all nodes from the subset - EINA_LIST_FOREACH(order, n, o) + EINA_LIST_FREE(order, o) { Node *tmp; diff --git a/src/lib/elementary/efl_ui_focus_manager_calc.eo b/src/lib/elementary/efl_ui_focus_manager_calc.eo index 7d622c9786..2b78b259ac 100644 --- a/src/lib/elementary/efl_ui_focus_manager_calc.eo +++ b/src/lib/elementary/efl_ui_focus_manager_calc.eo @@ -66,7 +66,7 @@ class Efl.Ui.Focus.Manager.Calc (Efl.Object, Efl.Ui.Focus.Manager) { [[Give the list of children a different order.]] params { parent : Efl.Ui.Focus.Object @nonull; [[the parent to update]] - children : list; [[the list with the new order]] + children : own(list); [[the list with the new order]] } return : bool; [[$true if successful, $false otherwise]] } diff --git a/src/lib/elementary/elc_fileselector.c b/src/lib/elementary/elc_fileselector.c index 4b4dda5f9b..74dd7f9581 100644 --- a/src/lib/elementary/elc_fileselector.c +++ b/src/lib/elementary/elc_fileselector.c @@ -96,26 +96,24 @@ EFL_CALLBACKS_ARRAY_DEFINE(monitoring_callbacks, static void _focus_chain_update(Eo *obj, Elm_Fileselector_Data *pd) { - Eo *fman = efl_ui_focus_user_manager_get(obj); - if (fman) - { - Eina_List *tmp = NULL; + Eina_List *tmp = NULL; #define A(p) tmp = eina_list_append(tmp, p); - A(pd->up_button) - A(pd->home_button) - A(pd->search_entry) - A(pd->files_view) - A(pd->path_entry) - A(pd->name_entry) - A(pd->filter_hoversel) - A(pd->ok_button) - A(pd->cancel_button) + + A(pd->up_button) + A(pd->home_button) + A(pd->search_entry) + A(pd->files_view) + A(pd->path_entry) + A(pd->name_entry) + A(pd->filter_hoversel) + A(pd->ok_button) + A(pd->cancel_button) + + #undef A - efl_ui_focus_manager_calc_update_order(efl_ui_focus_user_manager_get(obj), obj, tmp); - eina_list_free(tmp); - } + efl_ui_focus_manager_calc_update_order(efl_ui_focus_user_manager_get(obj), obj, tmp); } static void diff --git a/src/lib/elementary/elm_box.c b/src/lib/elementary/elm_box.c index 3f55144f01..b87d33c2b9 100644 --- a/src/lib/elementary/elm_box.c +++ b/src/lib/elementary/elm_box.c @@ -26,13 +26,9 @@ static void _focus_order_flush(Eo *obj, Elm_Box_Data *pd EINA_UNUSED) { Elm_Widget_Smart_Data *wpd = efl_data_scope_get(obj, ELM_WIDGET_CLASS); - if (wpd->focus.manager) - { - Eina_List *order = evas_object_box_children_get(wpd->resize_obj); + Eina_List *order = evas_object_box_children_get(wpd->resize_obj); - efl_ui_focus_manager_calc_update_order(wpd->focus.manager, obj, order); - eina_list_free(order); - } + efl_ui_focus_manager_calc_update_order(wpd->focus.manager, obj, order); } static void * diff --git a/src/lib/elementary/elm_grid.c b/src/lib/elementary/elm_grid.c index 9b37e3e87e..7c85648882 100644 --- a/src/lib/elementary/elm_grid.c +++ b/src/lib/elementary/elm_grid.c @@ -17,13 +17,9 @@ static void _focus_order_flush(Eo *obj) { Elm_Widget_Smart_Data *wpd = efl_data_scope_get(obj, ELM_WIDGET_CLASS); - if (wpd->focus.manager) - { - Eina_List *order = evas_object_grid_children_get(wpd->resize_obj); + Eina_List *order = evas_object_grid_children_get(wpd->resize_obj); - efl_ui_focus_manager_calc_update_order(wpd->focus.manager, obj, order); - eina_list_free(order); - } + efl_ui_focus_manager_calc_update_order(wpd->focus.manager, obj, order); } diff --git a/src/lib/elementary/elm_table.c b/src/lib/elementary/elm_table.c index b1e5b3b7b0..30d5788010 100644 --- a/src/lib/elementary/elm_table.c +++ b/src/lib/elementary/elm_table.c @@ -18,13 +18,9 @@ static void _focus_order_flush(Eo *obj) { Elm_Widget_Smart_Data *wpd = efl_data_scope_get(obj, ELM_WIDGET_CLASS); - if (wpd->focus.manager) - { - Eina_List *order = evas_object_table_children_get(wpd->resize_obj); + Eina_List *order = evas_object_table_children_get(wpd->resize_obj); - efl_ui_focus_manager_calc_update_order(wpd->focus.manager, obj, order); - eina_list_free(order); - } + efl_ui_focus_manager_calc_update_order(wpd->focus.manager, obj, order); } EOLIAN static Eina_Bool diff --git a/src/lib/elementary/elm_toolbar.c b/src/lib/elementary/elm_toolbar.c index 4e96ac6a07..183d148cd9 100644 --- a/src/lib/elementary/elm_toolbar.c +++ b/src/lib/elementary/elm_toolbar.c @@ -102,29 +102,24 @@ _item_focus_eval(Elm_Toolbar_Item_Data *pd) static void _item_focus_eval_all(Elm_Toolbar *obj, Elm_Toolbar_Data *pd) { + Elm_Toolbar_Item_Data *it; Elm_Widget_Smart_Data *wpd; + Eina_List *order = NULL; wpd = efl_data_scope_get(obj, ELM_WIDGET_CLASS); - if (wpd->focus.manager) + EINA_INLIST_FOREACH(pd->items, it) { - Eina_List *order = NULL; - Elm_Toolbar_Item_Data *it; - - EINA_INLIST_FOREACH(pd->items, it) - { - _item_focus_eval(it); - order = eina_list_append(order, EO_OBJ(it)); - } - - if (pd->more_item) - { - _item_focus_eval(pd->more_item); - order = eina_list_append(order, EO_OBJ(pd->more_item)); - } - - efl_ui_focus_manager_calc_update_order(wpd->focus.manager, obj, order); - eina_list_free(order); + _item_focus_eval(it); + order = eina_list_append(order, EO_OBJ(it)); } + + if (pd->more_item) + { + _item_focus_eval(pd->more_item); + order = eina_list_append(order, EO_OBJ(pd->more_item)); + } + + efl_ui_focus_manager_calc_update_order(wpd->focus.manager, obj, order); } static int diff --git a/src/tests/elementary/elm_test_focus.c b/src/tests/elementary/elm_test_focus.c index 063d4cdaa3..ab6c7f558d 100644 --- a/src/tests/elementary/elm_test_focus.c +++ b/src/tests/elementary/elm_test_focus.c @@ -320,7 +320,6 @@ START_TEST(order_check) order = eina_list_append(order, child3); order = eina_list_append(order, child1); ck_assert_int_eq(efl_ui_focus_manager_calc_update_children(m, root, order), 1); - eina_list_free(order); order = NULL;