bu5hm4n pushed a commit to branch master.

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

commit e25d494590bbf9e8d7655ca5252c9261f6b8c255
Author: Marcel Hollerbach <mar...@osg.samsung.com>
Date:   Sun Oct 15 15:26:22 2017 +0200

    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 427f905225..0ac87aab04 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 4f2f0df6a6..e6feb1eedf 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) */

-- 


Reply via email to