forked from enlightenment/efl
widget: Fix a bug in elm_widget_newest_focus_order_get.
When elm_widget_newest_focus_order_get is called with can_focus_only, only focusable objects should be the candidates for newest focused object. But there are cases that unfocusable object add +1 to newest_focus_order.
This commit is contained in:
parent
99321e8ca8
commit
fa8ca01128
|
@ -4762,8 +4762,11 @@ _elm_widget_newest_focus_order_get(Eo *obj, void *_pd, va_list *list)
|
||||||
best = NULL;
|
best = NULL;
|
||||||
if (*newest_focus_order < sd->focus_order)
|
if (*newest_focus_order < sd->focus_order)
|
||||||
{
|
{
|
||||||
*newest_focus_order = sd->focus_order;
|
if (!can_focus_only || elm_widget_can_focus_get(obj))
|
||||||
best = obj;
|
{
|
||||||
|
*newest_focus_order = sd->focus_order;
|
||||||
|
best = obj;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
EINA_LIST_FOREACH(sd->subobjs, l, child)
|
EINA_LIST_FOREACH(sd->subobjs, l, child)
|
||||||
{
|
{
|
||||||
|
@ -4772,11 +4775,6 @@ _elm_widget_newest_focus_order_get(Eo *obj, void *_pd, va_list *list)
|
||||||
if (!cur) continue;
|
if (!cur) continue;
|
||||||
best = cur;
|
best = cur;
|
||||||
}
|
}
|
||||||
if (can_focus_only)
|
|
||||||
{
|
|
||||||
if ((!best) || (!elm_widget_can_focus_get(best)))
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
*ret = best;
|
*ret = best;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue