From e25d494590bbf9e8d7655ca5252c9261f6b8c255 Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Sun, 15 Oct 2017 15:26:22 +0200 Subject: [PATCH] elm_widget: do not cache the provider if turns out that caching the provider here is a problem, since a parent changing does not change the provided provider --- src/lib/elementary/elm_widget.c | 6 ++++-- src/lib/elementary/elm_widget.h | 1 - 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c index 427f905..0ac87aa 100644 --- a/src/lib/elementary/elm_widget.c +++ b/src/lib/elementary/elm_widget.c @@ -454,8 +454,11 @@ static Efl_Ui_Focus_Object* _logical_parent_eval(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *pd) { Elm_Widget *parent; + Efl_Ui_Focus_Parent_Provider *provider; - parent = efl_ui_focus_parent_provider_find_logical_parent(pd->provider, obj); + provider = efl_provider_find(obj, EFL_UI_FOCUS_PARENT_PROVIDER_INTERFACE); + + parent = efl_ui_focus_parent_provider_find_logical_parent(provider, obj); if (pd->logical.parent != parent) { @@ -5084,7 +5087,6 @@ _elm_widget_efl_object_constructor(Eo *obj, Elm_Widget_Smart_Data *sd EINA_UNUSE evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); parent = efl_parent_get(obj); elm_obj_widget_parent_set(obj, parent); - sd->provider = efl_provider_find(obj, EFL_UI_FOCUS_PARENT_PROVIDER_INTERFACE); sd->on_create = EINA_FALSE; elm_interface_atspi_accessible_role_set(obj, ELM_ATSPI_ROLE_UNKNOWN); diff --git a/src/lib/elementary/elm_widget.h b/src/lib/elementary/elm_widget.h index 4f2f0df..e6feb1e 100644 --- a/src/lib/elementary/elm_widget.h +++ b/src/lib/elementary/elm_widget.h @@ -416,7 +416,6 @@ typedef struct _Elm_Widget_Smart_Data Eina_Inlist *translate_strings; Eina_List *focus_chain; Eina_List *event_cb; - Eo *provider; /* this is a hook to be set on-the-fly on widgets. this is code * handling the request of showing a specific region from an inner * widget (mainly issued by entries, on cursor moving) */ -- 2.7.4