bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=cb27a739686a8ae0673202c86a173e4055985084

commit cb27a739686a8ae0673202c86a173e4055985084
Author: Marcel Hollerbach <[email protected]>
Date:   Sun Oct 15 16:55:08 2017 +0200

    elm_box: port to composition
---
 src/lib/elementary/elm_box.c  | 45 ++++++++++++++++---------------------------
 src/lib/elementary/elm_box.eo |  4 ++--
 2 files changed, 19 insertions(+), 30 deletions(-)

diff --git a/src/lib/elementary/elm_box.c b/src/lib/elementary/elm_box.c
index 4641c15e19..ba71a6a496 100644
--- a/src/lib/elementary/elm_box.c
+++ b/src/lib/elementary/elm_box.c
@@ -3,6 +3,7 @@
 #endif
 
 #define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED
+#define EFL_UI_FOCUS_COMPOSITION_PROTECTED
 
 #include <Elementary.h>
 #include <elm_box.eo.h>
@@ -23,12 +24,12 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = 
{
 };
 
 static void
-_focus_order_flush(Eo *obj, Elm_Box_Data *pd EINA_UNUSED)
+_elm_box_efl_ui_focus_composition_prepare(Eo *obj, Elm_Box_Data *pd 
EINA_UNUSED)
 {
    Elm_Widget_Smart_Data *wpd = efl_data_scope_get(obj, ELM_WIDGET_CLASS);
    Eina_List *order = evas_object_box_children_get(wpd->resize_obj);
 
-   efl_ui_focus_manager_calc_update_order(wpd->focus.manager, obj, order);
+   efl_ui_focus_composition_elements_set(obj, order);
 }
 
 static void
@@ -402,27 +403,27 @@ _elm_box_homogeneous_get(Eo *obj EINA_UNUSED, 
Elm_Box_Data *sd)
 }
 
 EOLIAN static void
-_elm_box_pack_start(Eo *obj, Elm_Box_Data *pd, Evas_Object *subobj)
+_elm_box_pack_start(Eo *obj, Elm_Box_Data *pd EINA_UNUSED, Evas_Object *subobj)
 {
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
 
    elm_widget_sub_object_add(obj, subobj);
    evas_object_box_prepend(wd->resize_obj, subobj);
-   _focus_order_flush(obj, pd);
+   efl_ui_focus_composition_dirty(obj);
 }
 
 EOLIAN static void
-_elm_box_pack_end(Eo *obj, Elm_Box_Data *pd, Evas_Object *subobj)
+_elm_box_pack_end(Eo *obj, Elm_Box_Data *pd EINA_UNUSED, Evas_Object *subobj)
 {
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
 
    elm_widget_sub_object_add(obj, subobj);
    evas_object_box_append(wd->resize_obj, subobj);
-   _focus_order_flush(obj, pd);
+   efl_ui_focus_composition_dirty(obj);
 }
 
 EOLIAN static void
-_elm_box_pack_before(Eo *obj, Elm_Box_Data *pd, Evas_Object *subobj, 
Evas_Object *before)
+_elm_box_pack_before(Eo *obj, Elm_Box_Data *pd EINA_UNUSED, Evas_Object 
*subobj, Evas_Object *before)
 {
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
 
@@ -430,41 +431,41 @@ _elm_box_pack_before(Eo *obj, Elm_Box_Data *pd, 
Evas_Object *subobj, Evas_Object
 
    evas_object_box_insert_before
      (wd->resize_obj, subobj, before);
-   _focus_order_flush(obj, pd);
+   efl_ui_focus_composition_dirty(obj);
 }
 
 EOLIAN static void
-_elm_box_pack_after(Eo *obj, Elm_Box_Data *pd, Evas_Object *subobj, 
Evas_Object *after)
+_elm_box_pack_after(Eo *obj, Elm_Box_Data *pd EINA_UNUSED, Evas_Object 
*subobj, Evas_Object *after)
 {
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
 
    elm_widget_sub_object_add(obj, subobj);
    evas_object_box_insert_after
      (wd->resize_obj, subobj, after);
-   _focus_order_flush(obj, pd);
+   efl_ui_focus_composition_dirty(obj);
 }
 
 EOLIAN static void
-_elm_box_clear(Eo *obj, Elm_Box_Data *pd)
+_elm_box_clear(Eo *obj, Elm_Box_Data *pd EINA_UNUSED)
 {
    /* EINA_TRUE means to delete objects as well */
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
    evas_object_box_remove_all(wd->resize_obj, EINA_TRUE);
-   _focus_order_flush(obj, pd);
+   efl_ui_focus_composition_dirty(obj);
 }
 
 EOLIAN static void
-_elm_box_unpack(Eo *obj, Elm_Box_Data *pd, Evas_Object *subobj)
+_elm_box_unpack(Eo *obj, Elm_Box_Data *pd EINA_UNUSED, Evas_Object *subobj)
 {
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
 
    if (evas_object_box_remove(wd->resize_obj, subobj))
      _elm_widget_sub_object_redirect_to_top(obj, subobj);
-   _focus_order_flush(obj, pd);
+   efl_ui_focus_composition_dirty(obj);
 }
 
 EOLIAN static void
-_elm_box_unpack_all(Eo *obj, Elm_Box_Data *pd)
+_elm_box_unpack_all(Eo *obj, Elm_Box_Data *pd EINA_UNUSED)
 {
    Evas_Object_Box_Data *bd;
    Evas_Object_Box_Option *opt;
@@ -488,7 +489,7 @@ _elm_box_unpack_all(Eo *obj, Elm_Box_Data *pd)
      _elm_widget_sub_object_redirect_to_top(obj, c);
    /* update size hints */
    _sizing_eval(obj);
-   _focus_order_flush(obj, pd);
+   efl_ui_focus_composition_dirty(obj);
 }
 
 EAPI void
@@ -651,18 +652,6 @@ _elm_box_class_constructor(Efl_Class *klass)
 {
    evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
 }
-EOLIAN Eina_Bool
-_elm_box_elm_widget_focus_state_apply(Eo *obj, Elm_Box_Data *pd, 
Elm_Widget_Focus_State current_state, Elm_Widget_Focus_State *configured_state, 
Elm_Widget *redirect)
-{
-   Eina_Bool result = elm_obj_widget_focus_state_apply(efl_super(obj, 
MY_CLASS), current_state, configured_state, redirect);
-
-   //later registering children are automatically set into the order of the 
internal table
-   if (configured_state->manager)
-     _focus_order_flush(obj, pd);
-
-   return result;
-}
-
 /* Internal EO APIs and hidden overrides */
 
 #define ELM_BOX_EXTRA_OPS \
diff --git a/src/lib/elementary/elm_box.eo b/src/lib/elementary/elm_box.eo
index 39c82a9433..8822c1cc5b 100644
--- a/src/lib/elementary/elm_box.eo
+++ b/src/lib/elementary/elm_box.eo
@@ -1,6 +1,6 @@
 import evas_box;
 
-class Elm.Box (Elm.Widget)
+class Elm.Box (Elm.Widget, Efl.Ui.Focus.Composition)
 {
    [[Elementary box class]]
    legacy_prefix: elm_box;
@@ -251,7 +251,7 @@ class Elm.Box (Elm.Widget)
       Efl.Canvas.Group.group_calculate;
       Elm.Widget.theme_apply;
       Elm.Widget.widget_sub_object_del;
-      Elm.Widget.focus_state_apply;
+      Efl.Ui.Focus.Composition.prepare;
    }
    events {
       child,added; [[Called when child was added]]

-- 


Reply via email to