jpeg pushed a commit to branch master.

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

commit 10ec5f5f80bf2e824ac91a46a66cc5dc07a84a64
Author: Jean-Philippe Andre <jp.an...@samsung.com>
Date:   Tue Aug 8 22:53:58 2017 +0900

    widget: Remove scrollable_children from EO
    
    It's an internal only function, which IMHO was not required and an
    overhead over the simple loop.
    
    Ref T5363
---
 src/lib/elementary/elm_widget.c  | 58 ++++++++++++----------------------------
 src/lib/elementary/elm_widget.eo | 11 +++-----
 src/lib/elementary/elm_widget.h  |  6 -----
 3 files changed, 20 insertions(+), 55 deletions(-)

diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c
index 8c5802663f..505d545199 100644
--- a/src/lib/elementary/elm_widget.c
+++ b/src/lib/elementary/elm_widget.c
@@ -3510,25 +3510,6 @@ _elm_widget_parents_bounce_get(Eo *obj, 
Elm_Widget_Smart_Data *_pd EINA_UNUSED,
    while (parent_obj);
 }
 
-EOLIAN static Eina_List*
-_elm_widget_scrollable_children_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data 
*sd)
-{
-   Eina_List *ret;
-   ret = NULL;
-
-   Eina_List *l;
-   Evas_Object *child;
-
-
-   EINA_LIST_FOREACH(sd->subobjs, l, child)
-     {
-        if (elm_widget_is(child) && _elm_scrollable_is(child))
-          ret = eina_list_append(ret, child);
-     }
-
-   return ret;
-}
-
 EOLIAN static void
 _elm_widget_scroll_hold_push(Eo *obj, Elm_Widget_Smart_Data *sd)
 {
@@ -3539,15 +3520,14 @@ _elm_widget_scroll_hold_push(Eo *obj, 
Elm_Widget_Smart_Data *sd)
            elm_interface_scrollable_hold_set(obj, EINA_TRUE);
         else
           {
-             Eina_List *scr_children, *l;
              Evas_Object *child;
+             Eina_List *l;
 
-             scr_children = elm_widget_scrollable_children_get(obj);
-             EINA_LIST_FOREACH(scr_children, l, child)
+             EINA_LIST_FOREACH(sd->subobjs, l, child)
                {
-                  elm_interface_scrollable_hold_set(child, EINA_TRUE);
+                  if (elm_widget_is(child) && _elm_scrollable_is(child))
+                    elm_interface_scrollable_hold_set(child, EINA_TRUE);
                }
-             eina_list_free(scr_children);
           }
      }
    if (sd->parent_obj) elm_obj_widget_scroll_hold_push(sd->parent_obj);
@@ -3564,15 +3544,14 @@ _elm_widget_scroll_hold_pop(Eo *obj, 
Elm_Widget_Smart_Data *sd)
            elm_interface_scrollable_hold_set(obj, EINA_FALSE);
         else
           {
-             Eina_List *scr_children, *l;
              Evas_Object *child;
+             Eina_List *l;
 
-             scr_children = elm_widget_scrollable_children_get(obj);
-             EINA_LIST_FOREACH(scr_children, l, child)
+             EINA_LIST_FOREACH(sd->subobjs, l, child)
                {
-                  elm_interface_scrollable_hold_set(child, EINA_FALSE);
+                  if (elm_widget_is(child) && _elm_scrollable_is(child))
+                    elm_interface_scrollable_hold_set(child, EINA_FALSE);
                }
-             eina_list_free(scr_children);
           }
      }
    if (sd->parent_obj) elm_obj_widget_scroll_hold_pop(sd->parent_obj);
@@ -3595,15 +3574,14 @@ _elm_widget_scroll_freeze_push(Eo *obj, 
Elm_Widget_Smart_Data *sd)
            elm_interface_scrollable_freeze_set(obj, EINA_TRUE);
         else
           {
-             Eina_List *scr_children, *l;
              Evas_Object *child;
+             Eina_List *l;
 
-             scr_children = elm_widget_scrollable_children_get(obj);
-             EINA_LIST_FOREACH(scr_children, l, child)
+             EINA_LIST_FOREACH(sd->subobjs, l, child)
                {
-                  elm_interface_scrollable_freeze_set(child, EINA_TRUE);
+                  if (elm_widget_is(child) && _elm_scrollable_is(child))
+                    elm_interface_scrollable_freeze_set(child, EINA_TRUE);
                }
-             eina_list_free(scr_children);
           }
      }
    if (sd->parent_obj) elm_obj_widget_scroll_freeze_push(sd->parent_obj);
@@ -3620,15 +3598,14 @@ _elm_widget_scroll_freeze_pop(Eo *obj, 
Elm_Widget_Smart_Data *sd)
            elm_interface_scrollable_freeze_set(obj, EINA_FALSE);
         else
           {
-             Eina_List *scr_children, *l;
              Evas_Object *child;
+             Eina_List *l;
 
-             scr_children = elm_widget_scrollable_children_get(obj);
-             EINA_LIST_FOREACH(scr_children, l, child)
+             EINA_LIST_FOREACH(sd->subobjs, l, child)
                {
-                  elm_interface_scrollable_freeze_set(child, EINA_FALSE);
+                  if (elm_widget_is(child) && _elm_scrollable_is(child))
+                    elm_interface_scrollable_freeze_set(child, EINA_FALSE);
                }
-             eina_list_free(scr_children);
           }
      }
    if (sd->parent_obj) elm_obj_widget_scroll_freeze_pop(sd->parent_obj);
@@ -4045,13 +4022,12 @@ _elm_widget_drag_child_locked_y_get(Eo *obj 
EINA_UNUSED, Elm_Widget_Smart_Data *
 EOLIAN static void
 _elm_widget_item_loop_enabled_set(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data 
*sd EINA_UNUSED, Eina_Bool enable EINA_UNUSED)
 {
-       return;
 }
 
 EOLIAN static Eina_Bool
 _elm_widget_item_loop_enabled_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data 
*sd EINA_UNUSED)
 {
-       return EINA_FALSE;
+   return EINA_FALSE;
 }
 
 EOLIAN static Elm_Theme_Apply
diff --git a/src/lib/elementary/elm_widget.eo b/src/lib/elementary/elm_widget.eo
index 17214939ed..121d6ffd89 100644
--- a/src/lib/elementary/elm_widget.eo
+++ b/src/lib/elementary/elm_widget.eo
@@ -235,6 +235,8 @@ abstract Elm.Widget (Efl.Canvas.Group, 
Elm.Interface.Atspi_Accessible,
             sobj: Efl.Canvas.Object @nullable; [[Hover sub object]]
          }
       }
+      /* internal only - most objects use data = null as they work on
+         themselves except scroller itself */
       @property on_show_region_hook {
         [[Region hook on show property]]
          set {
@@ -244,6 +246,7 @@ abstract Elm.Widget (Efl.Canvas.Group, 
Elm.Interface.Atspi_Accessible,
             data: void_ptr @optional; [[Data pointer]]
          }
       }
+      /* this is a part api */
       @property domain_part_text_translatable {
         [[Translate domain text part property]]
          set {
@@ -272,14 +275,6 @@ abstract Elm.Widget (Efl.Canvas.Group, 
Elm.Interface.Atspi_Accessible,
             label: string; [[Label]]
          }
       }
-      @property scrollable_children {
-         get {
-            [[Function to operate on a given widget's scrollable children when 
necessary.
-
-              Warning: free the returned list with eina_list_free().]]
-            return: free(own(list<Efl.Canvas.Object>), eina_list_free) 
@warn_unused; [[List of scrollable children]]
-         }
-      }
       @property scroll_hold {
         [[Scroll hold property]]
          get {
diff --git a/src/lib/elementary/elm_widget.h b/src/lib/elementary/elm_widget.h
index f653232c50..40579b88f8 100644
--- a/src/lib/elementary/elm_widget.h
+++ b/src/lib/elementary/elm_widget.h
@@ -785,12 +785,6 @@ EAPI void             
elm_widget_focus_region_show_mode_set(Evas_Object *obj, El
 EAPI Elm_Focus_Region_Show_Mode elm_widget_focus_region_show_mode_get(const 
Evas_Object *obj);
 EAPI void             elm_widget_focus_reconfigure(Evas_Object *obj);
 
-/**
- * Function to operate on a given widget's scrollabe children when necessary.
- * @warning free the returned list with eina_list_free().
- */
-EAPI Eina_List       *elm_widget_scrollable_children_get(const Evas_Object 
*obj);
-
 /* debug function. don't use it unless you are tracking parenting issues */
 EAPI void             elm_widget_tree_dump(const Evas_Object *top);
 EAPI void             elm_widget_tree_dot_dump(const Evas_Object *top, FILE 
*output);

-- 


Reply via email to