aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/elementary/elm_widget.c
diff options
context:
space:
mode:
authorMarcel Hollerbach <marcel@osg.samsung.com>2017-10-15 15:26:22 +0200
committerMarcel Hollerbach <marcel@osg.samsung.com>2017-10-16 11:02:12 +0200
commite25d494590bbf9e8d7655ca5252c9261f6b8c255 (patch)
tree1a4d3f7db6e2287bea9fd662ffa3be1efa9670c9 /src/lib/elementary/elm_widget.c
parentelm_widget: also unregister if the logical parent changes (diff)
downloadefl-e25d494590bbf9e8d7655ca5252c9261f6b8c255.tar.gz
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
Diffstat (limited to 'src/lib/elementary/elm_widget.c')
-rw-r--r--src/lib/elementary/elm_widget.c6
1 files changed, 4 insertions, 2 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);