bu5hm4n pushed a commit to branch master.

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

commit d712c1a9112aa82283c539064a580f193f5e7910
Author: Marcel Hollerbach <mar...@osg.samsung.com>
Date:   Sun Oct 15 17:16:52 2017 +0200

    elm_table: port to composition
---
 src/lib/elementary/elm_table.c  | 24 ++++++------------------
 src/lib/elementary/elm_table.eo |  4 ++--
 2 files changed, 8 insertions(+), 20 deletions(-)

diff --git a/src/lib/elementary/elm_table.c b/src/lib/elementary/elm_table.c
index d9d16bb7ce..bee56656f7 100644
--- a/src/lib/elementary/elm_table.c
+++ b/src/lib/elementary/elm_table.c
@@ -3,6 +3,7 @@
 #endif
 
 #define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED
+#define EFL_UI_FOCUS_COMPOSITION_PROTECTED
 
 #include <Elementary.h>
 #include <elm_table.eo.h>
@@ -15,12 +16,12 @@
 #define MY_CLASS_NAME_LEGACY "elm_table"
 
 static void
-_focus_order_flush(Eo *obj)
+_elm_table_efl_ui_focus_composition_prepare(Eo *obj, void *pd EINA_UNUSED)
 {
    Elm_Widget_Smart_Data *wpd = efl_data_scope_get(obj, ELM_WIDGET_CLASS);
    Eina_List *order = evas_object_table_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
@@ -239,7 +240,7 @@ _elm_table_pack(Eo *obj, void *_pd EINA_UNUSED, Evas_Object 
*subobj, int col, in
 
    elm_widget_sub_object_add(obj, subobj);
    evas_object_table_pack(wd->resize_obj, subobj, col, row, colspan, rowspan);
-   _focus_order_flush(obj);
+   efl_ui_focus_composition_dirty(obj);
 }
 
 EOLIAN static void
@@ -270,7 +271,7 @@ _elm_table_pack_set(Eo *obj, void *_pd EINA_UNUSED, 
Evas_Object *subobj, int col
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
 
    evas_object_table_pack(wd->resize_obj, subobj, col, row, colspan, rowspan);
-   _focus_order_flush(obj);
+   efl_ui_focus_composition_dirty(obj);
 }
 
 EAPI void
@@ -305,7 +306,7 @@ _elm_table_clear(Eo *obj, void *_pd EINA_UNUSED, Eina_Bool 
clear)
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
 
    evas_object_table_clear(wd->resize_obj, clear);
-   _focus_order_flush(obj);
+   efl_ui_focus_composition_dirty(obj);
 }
 
 EOLIAN static Evas_Object*
@@ -330,19 +331,6 @@ _elm_table_efl_canvas_group_group_calculate(Eo *obj, void 
*pd EINA_UNUSED)
    evas_object_smart_calculate(wd->resize_obj);
 }
 
-EOLIAN Eina_Bool
-_elm_table_elm_widget_focus_state_apply(Eo *obj, void *pd EINA_UNUSED, 
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);
-
-   return result;
-}
-
-
 /* Internal EO APIs and hidden overrides */
 
 #define ELM_TABLE_EXTRA_OPS \
diff --git a/src/lib/elementary/elm_table.eo b/src/lib/elementary/elm_table.eo
index 92a0c855b4..115d43c1c0 100644
--- a/src/lib/elementary/elm_table.eo
+++ b/src/lib/elementary/elm_table.eo
@@ -1,4 +1,4 @@
-class Elm.Table (Elm.Widget)
+class Elm.Table (Elm.Widget, Efl.Ui.Focus.Composition)
 {
    [[Elementary table class]]
    legacy_prefix: elm_table;
@@ -123,6 +123,6 @@ class Elm.Table (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;
    }
 }

-- 


Reply via email to