summaryrefslogtreecommitdiff
path: root/src/lib/elementary/efl_ui_widget.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/elementary/efl_ui_widget.c')
-rw-r--r--src/lib/elementary/efl_ui_widget.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/lib/elementary/efl_ui_widget.c b/src/lib/elementary/efl_ui_widget.c
index 4767f9a32f..7d9a18108f 100644
--- a/src/lib/elementary/efl_ui_widget.c
+++ b/src/lib/elementary/efl_ui_widget.c
@@ -311,7 +311,7 @@ _focus_manager_eval(Eo *obj, Elm_Widget_Smart_Data *pd)
{
new = parent;
}
- else
+ else if (parent)
{
new = efl_ui_focus_user_focus_manager_get(parent);
provider = parent;
@@ -2439,10 +2439,14 @@ _efl_ui_widget_disabled_set(Eo *obj, Elm_Widget_Smart_Data *sd, Eina_Bool disabl
}
EOLIAN static Eina_Bool
-_efl_ui_widget_disabled_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd)
+_efl_ui_widget_disabled_get(Eo *obj, Elm_Widget_Smart_Data *sd)
{
+ Eo *parent;
+
if (sd->disabled) return EINA_TRUE;
- return elm_widget_disabled_get(elm_widget_parent_get(obj));
+ if ((parent = elm_widget_parent_get(obj)) != NULL)
+ return elm_widget_disabled_get(parent);
+ return EINA_FALSE;
}
EOLIAN static void
@@ -5480,7 +5484,7 @@ _efl_ui_widget_efl_object_provider_find(const Eo *obj, Elm_Widget_Smart_Data *pd
if (pd->provider_lookup) return NULL;
pd->provider_lookup = EINA_TRUE;
- lookup = efl_provider_find(pd->parent_obj, klass);
+ if (pd->parent_obj) lookup = efl_provider_find(pd->parent_obj, klass);
if (!lookup) lookup = efl_provider_find(efl_super(obj, MY_CLASS), klass);
pd->provider_lookup = EINA_FALSE;