diff --git a/src/lib/elementary/efl_ui_focus_composition.c b/src/lib/elementary/efl_ui_focus_composition.c index de38094c62..b3cec4f501 100644 --- a/src/lib/elementary/efl_ui_focus_composition.c +++ b/src/lib/elementary/efl_ui_focus_composition.c @@ -161,6 +161,8 @@ _efl_ui_focus_composition_efl_ui_widget_focus_state_apply(Eo *obj, Efl_Ui_Focus_ configured_state->parent == current_state.parent) return !!current_state.manager; + if (!redirect) return EINA_FALSE; + registered = efl_ui_widget_focus_state_apply(efl_super(obj, MY_CLASS), current_state, configured_state, redirect); if (registered) diff --git a/src/lib/elementary/efl_ui_focus_manager_calc.c b/src/lib/elementary/efl_ui_focus_manager_calc.c index 5b7589d95f..ec8f1a1adb 100644 --- a/src/lib/elementary/efl_ui_focus_manager_calc.c +++ b/src/lib/elementary/efl_ui_focus_manager_calc.c @@ -645,7 +645,7 @@ _efl_ui_focus_manager_calc_update_parent(Eo *obj EINA_UNUSED, Efl_Ui_Focus_Manag Node *node; Node *parent; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent_obj, EINA_FALSE); + if (!parent_obj) return EINA_FALSE; EINA_SAFETY_ON_NULL_RETURN_VAL(child, EINA_FALSE); node = node_get(obj, pd, child); diff --git a/src/lib/elementary/efl_ui_focus_manager_root_focus.c b/src/lib/elementary/efl_ui_focus_manager_root_focus.c index 29507001fb..70c0aee2c3 100644 --- a/src/lib/elementary/efl_ui_focus_manager_root_focus.c +++ b/src/lib/elementary/efl_ui_focus_manager_root_focus.c @@ -95,6 +95,7 @@ _efl_ui_focus_manager_root_focus_efl_ui_focus_manager_calc_register(Eo *obj, Efl EOLIAN static Eina_Bool _efl_ui_focus_manager_root_focus_efl_ui_focus_manager_calc_register_logical(Eo *obj, Efl_Ui_Focus_Manager_Root_Focus_Data *pd, Efl_Ui_Focus_Object *child, Efl_Ui_Focus_Object *parent, Efl_Ui_Focus_Manager *redirect) { + if (!parent) return EINA_FALSE; if (efl_ui_focus_manager_calc_register_logical(efl_super(obj, MY_CLASS), child, parent, redirect)) { if (redirect && pd->rect_registered) diff --git a/src/lib/elementary/efl_ui_widget.c b/src/lib/elementary/efl_ui_widget.c index 26c4887684..8ad78e28c2 100644 --- a/src/lib/elementary/efl_ui_widget.c +++ b/src/lib/elementary/efl_ui_widget.c @@ -441,16 +441,16 @@ _logical_parent_eval(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *pd, Eina_Bool s if (should) { provider = efl_provider_find(obj, EFL_UI_FOCUS_PARENT_PROVIDER_INTERFACE); - EINA_SAFETY_ON_NULL_RETURN_VAL(provider, NULL); - parent = efl_ui_focus_parent_provider_find_logical_parent(provider, obj); + if (provider) + { + EINA_SAFETY_ON_NULL_RETURN_VAL(provider, NULL); + parent = efl_ui_focus_parent_provider_find_logical_parent(provider, obj); + } + else parent = NULL; } - else - parent = NULL; - } - else - { - parent = efl_ui_widget_parent_get(obj); + else parent = NULL; } + else parent = efl_ui_widget_parent_get(obj); if (pd->logical.parent != parent)