forked from enlightenment/efl
elm focus stuff - just handle corner cases during tree deletes quietly
like if parent is null in the process of a tree deletion etc....
This commit is contained in:
parent
bace9d9ee7
commit
324e74427c
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
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)
|
||||
|
|
Loading…
Reference in New Issue