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); --