efl_ui_frame: migrate to new focus system
when collapsed the subtree is unfocusable
This commit is contained in:
parent
7c35606d06
commit
d481dd58ec
|
@ -135,6 +135,7 @@ _on_frame_clicked(void *data,
|
|||
elm_layout_signal_emit(data, "elm,action,toggle", "elm");
|
||||
sd->collapsed++;
|
||||
sd->anim = EINA_TRUE;
|
||||
elm_widget_tree_unfocusable_set(data, sd->collapsed);
|
||||
}
|
||||
efl_event_callback_legacy_call
|
||||
(data, EFL_UI_EVENT_CLICKED, NULL);
|
||||
|
@ -234,6 +235,7 @@ _efl_ui_frame_collapse_set(Eo *obj, Efl_Ui_Frame_Data *sd, Eina_Bool collapse)
|
|||
sd->collapsed = !!collapse;
|
||||
sd->anim = EINA_FALSE;
|
||||
|
||||
elm_widget_tree_unfocusable_set(obj, sd->collapsed);
|
||||
_sizing_eval(obj, sd);
|
||||
}
|
||||
|
||||
|
@ -249,6 +251,7 @@ _efl_ui_frame_collapse_go(Eo *obj, Efl_Ui_Frame_Data *sd, Eina_Bool collapse)
|
|||
efl_event_callback_legacy_call
|
||||
(wd->resize_obj, EDJE_OBJECT_EVENT_RECALC, obj);
|
||||
sd->collapsed = collapse;
|
||||
elm_widget_tree_unfocusable_set(obj, sd->collapsed);
|
||||
sd->anim = EINA_TRUE;
|
||||
}
|
||||
|
||||
|
|
|
@ -1702,6 +1702,25 @@ _elm_widget_child_can_focus_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd)
|
|||
return sd->child_can_focus;
|
||||
}
|
||||
|
||||
static void
|
||||
_full_eval_children(Eo *obj, Elm_Widget_Smart_Data *sd)
|
||||
{
|
||||
Eina_List *l;
|
||||
Eo *child;
|
||||
|
||||
_full_eval(obj, sd);
|
||||
|
||||
EINA_LIST_FOREACH(sd->subobjs , l, child)
|
||||
{
|
||||
Elm_Widget_Smart_Data *sd_child;
|
||||
|
||||
if (!efl_isa(child, ELM_WIDGET_CLASS)) continue;
|
||||
|
||||
sd_child = efl_data_scope_get(child, ELM_WIDGET_CLASS);
|
||||
_full_eval_children(child, sd_child);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*
|
||||
|
@ -1724,6 +1743,9 @@ _elm_widget_tree_unfocusable_set(Eo *obj, Elm_Widget_Smart_Data *sd, Eina_Bool t
|
|||
if (sd->tree_unfocusable == tree_unfocusable) return;
|
||||
sd->tree_unfocusable = tree_unfocusable;
|
||||
elm_widget_focus_tree_unfocusable_handle(obj);
|
||||
|
||||
//focus state eval on all children
|
||||
_full_eval_children(obj, sd);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue