From cd603fa02b622b730a74e113fe35d319f17cdead Mon Sep 17 00:00:00 2001 From: chinmaya Date: Mon, 26 May 2014 15:45:54 +0900 Subject: [PATCH] Genlist: Focus does not move, if it is set on item content objects. Summary: If focus is set on item content object, it's treated as a different object which results the focus deadlock. So, every time whenever focus sets on item content object, we need to unset and set the focus on genlist object. Thanks to Seoz for the idea. Test Plan: elementary_test -to "genlist focus" Reviewers: seoz, SanghyeonLee, eagleeye CC: seoz Differential Revision: https://phab.enlightenment.org/D891 --- legacy/elementary/src/lib/elm_genlist.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/legacy/elementary/src/lib/elm_genlist.c b/legacy/elementary/src/lib/elm_genlist.c index 640b618..67f3749 100644 --- a/legacy/elementary/src/lib/elm_genlist.c +++ b/legacy/elementary/src/lib/elm_genlist.c @@ -5507,6 +5507,21 @@ _item_select(Elm_Gen_Item *it) else sd->last_selected_item = (Elm_Object_Item *)it; } + + if (!(sd->focus_on_selection_enabled || _elm_config->item_select_on_focus_disable)) + { + Evas_Object *swallow_obj; + Eina_List *l; + EINA_LIST_FOREACH(it->content_objs, l, swallow_obj) + { + if (elm_object_focus_get(swallow_obj)) + { + elm_object_focus_set( obj, EINA_FALSE); + elm_object_focus_set( obj, EINA_TRUE); + break; + } + } + } evas_object_unref(obj); } -- 2.7.4