List: Focus does not move if it's set on item content object.

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 "list focus"

Reviewers: seoz, SanghyeonLee, eagleeye

CC: seoz

Differential Revision: https://phab.enlightenment.org/D973
This commit is contained in:
efl 2014-06-11 14:14:28 +09:00 committed by Carsten Haitzler (Rasterman)
parent f6b7012329
commit 589a8ba74f
1 changed files with 13 additions and 0 deletions

View File

@ -1330,6 +1330,19 @@ _item_select(Elm_List_Item *it)
if (it->base.disabled || (sd->select_mode == ELM_OBJECT_SELECT_MODE_NONE))
return;
if (!sd->focus_on_selection_enabled && (it->icon || it->end))
{
if (elm_object_widget_check(it->icon) && elm_object_focus_get(it->icon))
{
elm_object_focus_set(obj, EINA_FALSE);
elm_object_focus_set(obj, EINA_TRUE);
}
else if (elm_object_widget_check(it->end) && elm_object_focus_get(it->end))
{
elm_object_focus_set(obj, EINA_FALSE);
elm_object_focus_set(obj, EINA_TRUE);
}
}
if (it->selected)
{
if (sd->select_mode == ELM_OBJECT_SELECT_MODE_ALWAYS) goto call;