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
This commit is contained in:
Marcel Hollerbach 2017-10-15 15:26:22 +02:00
parent 4edba079c4
commit e25d494590
2 changed files with 4 additions and 3 deletions

View File

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

View File

@ -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) */