bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=613649a39fe1481af494f33542c020b0b632183a
commit 613649a39fe1481af494f33542c020b0b632183a Author: Marcel Hollerbach <[email protected]> Date: Fri Oct 20 17:21:19 2017 +0200 elm_gengrid: add pseudo widget into the item if there are no focusable widgets --- src/lib/elementary/elm_gengrid.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/lib/elementary/elm_gengrid.c b/src/lib/elementary/elm_gengrid.c index a2cdc83c30..addcbeaf0d 100644 --- a/src/lib/elementary/elm_gengrid.c +++ b/src/lib/elementary/elm_gengrid.c @@ -14,6 +14,7 @@ #include "elm_widget_gengrid.h" #include "elm_interface_scrollable.h" #include "efl_ui_focus_parent_provider_gen.eo.h" +#include "efl_ui_focus_composition_adapter.eo.h" #define MY_PAN_CLASS ELM_GENGRID_PAN_CLASS @@ -4234,7 +4235,13 @@ static void _gengrid_element_focused(void *data, const Efl_Event *ev) { ELM_GENGRID_DATA_GET(data, pd); - Elm_Widget_Item *item = efl_ui_focus_parent_provider_find_logical_parent(pd->provider, ev->info); + Elm_Widget_Item *item; + + if (efl_isa(ev->info, EFL_UI_FOCUS_COMPOSITION_ADAPTER_CLASS)) + item = efl_parent_get(ev->info); + else + item = efl_ui_focus_parent_provider_find_logical_parent(pd->provider, ev->info); + if (efl_isa(item, ELM_GENGRID_ITEM_CLASS)) { _elm_gengrid_item_focused(item); @@ -5733,6 +5740,13 @@ _elm_gengrid_item_efl_ui_focus_object_prepare_logical(Eo *obj, Elm_Gen_Item *pd) { efl_ui_focus_object_prepare_logical(efl_super(obj, ELM_GENGRID_ITEM_CLASS)); _item_realize(pd); + + if (!efl_ui_focus_manager_request_subchild(WIDGET(pd), obj)) + { + Eo *adapter = efl_add(EFL_UI_FOCUS_COMPOSITION_ADAPTER_CLASS, VIEW(pd) , efl_ui_focus_composition_adapter_canvas_object_set(efl_added, VIEW(pd))); + + efl_ui_focus_manager_calc_register(WIDGET(pd), adapter, obj, NULL); + } } --
