summaryrefslogtreecommitdiff
path: root/src/lib/elementary
diff options
context:
space:
mode:
authorMarcel Hollerbach <marcel@osg.samsung.com>2017-10-19 13:29:03 +0200
committerMarcel Hollerbach <marcel@osg.samsung.com>2017-10-19 15:20:59 +0200
commiteb997134d0bd1c2442f7396f956f970851d73be2 (patch)
tree2cbfe80c8ad5a4ab8d21bd949fd8678e3d300518 /src/lib/elementary
parent5b2637b14eb9b40076da6c226d2c7ef548438147 (diff)
efl_ui_focus_parent_provider_gen: looks to get the last widget before
gengrid This means we are garanteed to find the item
Diffstat (limited to 'src/lib/elementary')
-rw-r--r--src/lib/elementary/efl_ui_focus_parent_provider_gen.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/lib/elementary/efl_ui_focus_parent_provider_gen.c b/src/lib/elementary/efl_ui_focus_parent_provider_gen.c
index b93271bfc6..ad1ed62837 100644
--- a/src/lib/elementary/efl_ui_focus_parent_provider_gen.c
+++ b/src/lib/elementary/efl_ui_focus_parent_provider_gen.c
@@ -49,9 +49,19 @@ EOLIAN static Efl_Ui_Focus_Object*
49_efl_ui_focus_parent_provider_gen_efl_ui_focus_parent_provider_find_logical_parent(Eo *obj EINA_UNUSED, Efl_Ui_Focus_Parent_Provider_Gen_Data *pd EINA_UNUSED, Efl_Ui_Focus_Object *widget) 49_efl_ui_focus_parent_provider_gen_efl_ui_focus_parent_provider_find_logical_parent(Eo *obj EINA_UNUSED, Efl_Ui_Focus_Parent_Provider_Gen_Data *pd EINA_UNUSED, Efl_Ui_Focus_Object *widget)
50{ 50{
51 //first check if this item is in the map 51 //first check if this item is in the map
52 Elm_Widget_Item *item; 52 Elm_Widget_Item *item, *above_gengrid = widget;
53 53
54 item = eina_hash_find(pd->map, &widget); 54 if (elm_widget_parent_widget_get(widget) != pd->container)
55 {
56 Elm_Widget *parent = elm_widget_parent_widget_get(widget);
57 //move forward so we get the last widget above the gengrid level, this may be the widget out of the map
58 do {
59 above_gengrid = parent;
60 parent = elm_widget_parent_widget_get(above_gengrid);
61 } while(parent && parent != pd->container);
62 }
63
64 item = eina_hash_find(pd->map, &above_gengrid);
55 65
56 efl_ui_focus_composition_elements_flush(pd->container); 66 efl_ui_focus_composition_elements_flush(pd->container);
57 67