bu5hm4n pushed a commit to branch master.

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

commit 0d7535071c9d94036a71c36a0704dac933dd5a67
Author: Marcel Hollerbach <m...@marcel-hollerbach.de>
Date:   Sat Sep 21 13:10:53 2019 +0200

    elementary: make our tests work again
    
    73219114682f64fdbfe0809be3f2d991016dd3f1 moved the constructor to to
    top, which leads to the fact that a few widgets cannot fetch the shared
    data of the window. Which made the test suite fail.
    
    With this commit we are just moving the sub_object_add after the
    constructor, which fixes the flip crash.
    This fixes the test suite
---
 src/lib/elementary/efl_ui_widget.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/lib/elementary/efl_ui_widget.c 
b/src/lib/elementary/efl_ui_widget.c
index 1091a98e37..6d5c780b95 100644
--- a/src/lib/elementary/efl_ui_widget.c
+++ b/src/lib/elementary/efl_ui_widget.c
@@ -4788,14 +4788,12 @@ elm_widget_tree_dot_dump(const Evas_Object *top,
 EOLIAN static Eo *
 _efl_ui_widget_efl_object_constructor(Eo *obj, Elm_Widget_Smart_Data *sd 
EINA_UNUSED)
 {
-   efl_canvas_group_clipped_set(obj, EINA_FALSE);
-   obj = efl_constructor(efl_super(obj, MY_CLASS));
+   Eo *parent = efl_parent_get(obj);
    sd->on_create = EINA_TRUE;
 
    sd->window = efl_provider_find(efl_parent_get(obj), EFL_UI_WIN_CLASS);
    if (!efl_isa(obj, EFL_UI_WIN_CLASS))
      {
-        Eo *parent = efl_parent_get(obj);
         if (!efl_isa(parent, EFL_UI_WIDGET_CLASS))
           {
              ERR("You passed a wrong parent parameter (%p %s). "
@@ -4806,7 +4804,6 @@ _efl_ui_widget_efl_object_constructor(Eo *obj, 
Elm_Widget_Smart_Data *sd EINA_UN
           {
              ELM_WIDGET_DATA_GET(parent, parent_sd);
              sd->shared_win_data = parent_sd->shared_win_data;
-             efl_ui_widget_sub_object_add(parent, obj);
           }
      }
    else
@@ -4815,9 +4812,14 @@ _efl_ui_widget_efl_object_constructor(Eo *obj, 
Elm_Widget_Smart_Data *sd EINA_UN
      }
 
    _efl_ui_focus_event_redirector(obj, obj);
+   efl_canvas_group_clipped_set(obj, EINA_FALSE);
+   obj = efl_constructor(efl_super(obj, MY_CLASS));
    efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
    evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
 
+   if (!efl_isa(obj, EFL_UI_WIN_CLASS) && efl_isa(parent, EFL_UI_WIDGET_CLASS))
+     efl_ui_widget_sub_object_add(parent, obj);
+
    sd->on_create = EINA_FALSE;
 
    efl_access_object_role_set(obj, EFL_ACCESS_ROLE_UNKNOWN);

-- 


Reply via email to