jpeg pushed a commit to branch master.

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

commit aebd37cab88c5e64cc3e63a218af24100718140b
Author: Jean-Philippe Andre <jp.an...@samsung.com>
Date:   Wed Aug 2 21:39:25 2017 +0900

    layout: Remove sub_object_add_enable
    
    Same as the previous patch. This was an ugly hack. Use another
    one instead.
    
    Ref T5315
---
 src/lib/elementary/elc_ctxpopup.c  |  7 +++++--
 src/lib/elementary/elm_ctxpopup.eo |  2 +-
 src/lib/elementary/elm_genlist.c   | 21 ++-------------------
 src/lib/elementary/elm_genlist.eo  |  1 -
 src/lib/elementary/elm_layout.c    | 16 +++-------------
 src/lib/elementary/elm_layout.eo   |  5 -----
 6 files changed, 11 insertions(+), 41 deletions(-)

diff --git a/src/lib/elementary/elc_ctxpopup.c 
b/src/lib/elementary/elc_ctxpopup.c
index e51ed06873..71de4ff5ec 100644
--- a/src/lib/elementary/elc_ctxpopup.c
+++ b/src/lib/elementary/elc_ctxpopup.c
@@ -615,9 +615,12 @@ _base_shift_by_arrow(Evas_Object *arrow,
 }
 
 EOLIAN static Eina_Bool
-_elm_ctxpopup_elm_layout_sub_object_add_enable(Eo *obj EINA_UNUSED, 
Elm_Ctxpopup_Data *_pd EINA_UNUSED)
+_elm_ctxpopup_elm_widget_sub_object_add(Eo *obj, Elm_Ctxpopup_Data *_pd 
EINA_UNUSED, Evas_Object *sobj)
 {
-   return EINA_FALSE;
+   /* Skipping elm_layout sub_object_add in order to ignore size hint changes.
+    * Note: It is not clear WHY we are doing this. Same reason as genlist?
+    */
+   return elm_obj_widget_sub_object_add(efl_cast(obj, ELM_WIDGET_CLASS), sobj);
 }
 
 EOLIAN static void
diff --git a/src/lib/elementary/elm_ctxpopup.eo 
b/src/lib/elementary/elm_ctxpopup.eo
index bec4e67ae1..e2eff8541d 100644
--- a/src/lib/elementary/elm_ctxpopup.eo
+++ b/src/lib/elementary/elm_ctxpopup.eo
@@ -160,6 +160,7 @@ class Elm.Ctxpopup (Elm.Layout, 
Elm.Interface.Atspi_Widget_Action,
       Elm.Widget.focus_next_manager_is;
       Elm.Widget.focus_next;
       Elm.Widget.disable;
+      Elm.Widget.sub_object_add;
       Elm.Widget.translate;
       Elm.Widget.theme_apply;
       Elm.Widget.widget_event;
@@ -167,7 +168,6 @@ class Elm.Ctxpopup (Elm.Layout, 
Elm.Interface.Atspi_Widget_Action,
       Efl.Ui.Menu.first_item { get; }
       Efl.Ui.Menu.last_item { get; }
       Efl.Ui.Menu.items { get; }
-      Elm.Layout.sub_object_add_enable;
       Elm.Layout.sizing_eval;
       Elm.Interface.Atspi_Widget_Action.elm_actions { get; }
       Elm.Interface.Atspi_Accessible.state_set { get; }
diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c
index 73b5fc086f..9e8f80d31d 100644
--- a/src/lib/elementary/elm_genlist.c
+++ b/src/lib/elementary/elm_genlist.c
@@ -3210,27 +3210,16 @@ _elm_genlist_elm_widget_widget_event(Eo *obj, 
Elm_Genlist_Data *sd, Evas_Object
    return EINA_TRUE;
 }
 
-/* This function disables the specific code of the layout sub object add.
- * Only the widget sub_object_add is called.
- */
-EOLIAN static Eina_Bool
-_elm_genlist_elm_layout_sub_object_add_enable(Eo *obj EINA_UNUSED, 
Elm_Genlist_Data *_pd EINA_UNUSED)
-{
-   return EINA_FALSE;
-}
-
 EOLIAN static Eina_Bool
 _elm_genlist_elm_widget_sub_object_add(Eo *obj, Elm_Genlist_Data *_pd 
EINA_UNUSED, Evas_Object *sobj)
 {
-   // FIXME: THIS COMMENT IS INVALID! WE ARE NOT SKIPPING ELM_LAYOUT!
-
    /* skipping layout's code, which registers size hint changing
     * callback on sub objects. this is here because items'
     * content_get() routines may change hints on the objects after
     * creation, thus issuing TOO MANY sizing_eval()'s here. they are
     * not needed at here anyway, so let's skip listening to those
     * hints changes */
-   return elm_obj_widget_sub_object_add(efl_super(obj, MY_CLASS), sobj);
+   return elm_obj_widget_sub_object_add(efl_cast(obj, ELM_WIDGET_CLASS), sobj);
 }
 
 EOLIAN static Eina_Bool
@@ -3238,20 +3227,14 @@ _elm_genlist_elm_widget_sub_object_del(Eo *obj, 
Elm_Genlist_Data *sd, Evas_Objec
 {
    Eina_Bool int_ret = EINA_FALSE;
 
-   // FIXME: THIS COMMENT IS INVALID! WE ARE NOT SKIPPING ELM_LAYOUT!
-
    /* XXX: hack -- also skipping sizing recalculation on
     * sub-object-del. genlist's crazy code paths (like groups and
     * such) seem to issue a whole lot of deletions and Evas bitches
     * about too many recalculations */
    sd->on_sub_del = EINA_TRUE;
-
    int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
-   if (!int_ret) return EINA_FALSE;
-
    sd->on_sub_del = EINA_FALSE;
-
-   return EINA_TRUE;
+   return int_ret;
 }
 
 /*
diff --git a/src/lib/elementary/elm_genlist.eo 
b/src/lib/elementary/elm_genlist.eo
index 9b88715199..9d08cd4e9f 100644
--- a/src/lib/elementary/elm_genlist.eo
+++ b/src/lib/elementary/elm_genlist.eo
@@ -544,7 +544,6 @@ class Elm.Genlist (Elm.Layout, Elm.Interface_Scrollable, 
Efl.Ui.Clickable,
       Elm.Widget.widget_event;
       Elm.Widget.focused_item { get; }
       Elm.Widget.item_loop_enabled { get; set; }
-      Elm.Layout.sub_object_add_enable;
       Elm.Layout.sizing_eval;
       Elm.Interface_Scrollable.bounce_allow { get; set; }
       Elm.Interface_Scrollable.policy { get; set; }
diff --git a/src/lib/elementary/elm_layout.c b/src/lib/elementary/elm_layout.c
index df3a35dfe8..1e3962b7a3 100644
--- a/src/lib/elementary/elm_layout.c
+++ b/src/lib/elementary/elm_layout.c
@@ -499,13 +499,9 @@ _elm_layout_elm_widget_sub_object_add(Eo *obj, 
Elm_Layout_Smart_Data *_pd EINA_U
    int_ret = elm_obj_widget_sub_object_add(efl_super(obj, MY_CLASS), sobj);
    if (!int_ret) return EINA_FALSE;
 
-   Eina_Bool enable = EINA_TRUE;
-   enable = elm_obj_layout_sub_object_add_enable(obj);
-
-   if (EINA_TRUE == enable)
-     evas_object_event_callback_add
-       (sobj, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
-         _on_sub_object_size_hint_change, obj);
+   evas_object_event_callback_add
+         (sobj, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
+          _on_sub_object_size_hint_change, obj);
 
    return EINA_TRUE;
 }
@@ -590,12 +586,6 @@ _edje_signal_callback(void *data,
    esd->func(esd->data, esd->obj, emission, source);
 }
 
-EOLIAN static Eina_Bool
-_elm_layout_sub_object_add_enable(Eo *obj EINA_UNUSED, Elm_Layout_Smart_Data 
*_pd EINA_UNUSED)
-{
-   return EINA_TRUE;
-}
-
 EAPI Eina_Bool
 _elm_layout_part_aliasing_eval(const Evas_Object *obj,
                                const char **part,
diff --git a/src/lib/elementary/elm_layout.eo b/src/lib/elementary/elm_layout.eo
index dd8e0a29d2..bdd91673a6 100644
--- a/src/lib/elementary/elm_layout.eo
+++ b/src/lib/elementary/elm_layout.eo
@@ -114,11 +114,6 @@ class Elm.Layout (Elm.Widget, Efl.Part, Efl.Container, 
Efl.File,
                                           callback function.]]
          }
       }
-      sub_object_add_enable {
-        [[Enable sub object add]]
-         legacy: null;
-         return: bool; [[$true on success, $false otherwise]]
-      }
       data_get @const {
          [[Get the edje data from the given layout.
 

-- 


Reply via email to