forked from enlightenment/efl
Refactoring focus_cycle_next_get and copies
SVN revision: 52813
This commit is contained in:
parent
d55fddf914
commit
a276bb071a
|
@ -56,6 +56,7 @@ static Eina_Bool
|
||||||
_elm_panel_focus_cycle_hook(Evas_Object *obj, Elm_Focus_Direction dir, Eina_Bool circular)
|
_elm_panel_focus_cycle_hook(Evas_Object *obj, Elm_Focus_Direction dir, Eina_Bool circular)
|
||||||
{
|
{
|
||||||
Widget_Data *wd = elm_widget_data_get(obj);
|
Widget_Data *wd = elm_widget_data_get(obj);
|
||||||
|
Evas_Object *cur;
|
||||||
|
|
||||||
if ((!wd) || (!wd->content))
|
if ((!wd) || (!wd->content))
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
|
@ -63,14 +64,18 @@ _elm_panel_focus_cycle_hook(Evas_Object *obj, Elm_Focus_Direction dir, Eina_Bool
|
||||||
if (wd->hidden)
|
if (wd->hidden)
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
|
|
||||||
|
cur = wd->content;
|
||||||
|
|
||||||
/* Try Focus cycle in subitem */
|
/* Try Focus cycle in subitem */
|
||||||
if (elm_widget_focus_cycle(wd->content, dir, circular))
|
if (elm_widget_focus_cycle(cur, dir, circular))
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
|
/* Ignore focused subitem */
|
||||||
|
if (elm_widget_focus_get(cur) && (!circular))
|
||||||
|
return EINA_FALSE;
|
||||||
/* Try give the focus to sub item*/
|
/* Try give the focus to sub item*/
|
||||||
else if (elm_widget_can_focus_get(wd->content) &&
|
if (elm_widget_can_focus_get(cur))
|
||||||
((!elm_widget_focus_get(wd->content)) || circular))
|
|
||||||
{
|
{
|
||||||
elm_widget_focus_steal(wd->content);
|
elm_widget_focus_steal(cur);
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -108,17 +108,23 @@ static Eina_Bool
|
||||||
_elm_scroller_focus_cycle_hook(Evas_Object *obj, Elm_Focus_Direction dir, Eina_Bool circular)
|
_elm_scroller_focus_cycle_hook(Evas_Object *obj, Elm_Focus_Direction dir, Eina_Bool circular)
|
||||||
{
|
{
|
||||||
Widget_Data *wd = elm_widget_data_get(obj);
|
Widget_Data *wd = elm_widget_data_get(obj);
|
||||||
|
Evas_Object *cur;
|
||||||
|
|
||||||
if ((!wd) || (!wd->content))
|
if ((!wd) || (!wd->content))
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
|
|
||||||
|
cur = wd->content;
|
||||||
|
|
||||||
/* Try Focus cycle in subitem */
|
/* Try Focus cycle in subitem */
|
||||||
if (elm_widget_focus_cycle(wd->content, dir, circular))
|
if (elm_widget_focus_cycle(cur, dir, circular))
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
|
/* Ignore focused subitem */
|
||||||
|
if (elm_widget_focus_get(cur) && (!circular))
|
||||||
|
return EINA_FALSE;
|
||||||
/* Try give the focus to sub item*/
|
/* Try give the focus to sub item*/
|
||||||
else if (elm_widget_can_focus_get(wd->content) &&
|
if (elm_widget_can_focus_get(cur))
|
||||||
((!elm_widget_focus_get(wd->content)) || circular))
|
|
||||||
{
|
{
|
||||||
elm_widget_focus_steal(wd->content);
|
elm_widget_focus_steal(cur);
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -757,12 +757,15 @@ elm_widget_focus_cycle_next_get(Evas_Object *obj, Eina_List *items, void *(*list
|
||||||
for (;l; l = list_next(l))
|
for (;l; l = list_next(l))
|
||||||
{
|
{
|
||||||
cur = list_data_get(l);
|
cur = list_data_get(l);
|
||||||
|
|
||||||
/* Try Focus cycle in subitem */
|
/* Try Focus cycle in subitem */
|
||||||
if (elm_widget_focus_cycle(cur, dir, child_circular))
|
if (elm_widget_focus_cycle(cur, dir, child_circular))
|
||||||
break;
|
break;
|
||||||
|
/* Ignore focused subitem */
|
||||||
|
if (elm_widget_focus_get(cur) && (!child_circular))
|
||||||
|
continue;
|
||||||
/* Try give the focus to sub item*/
|
/* Try give the focus to sub item*/
|
||||||
else if (elm_widget_can_focus_get(cur) &&
|
if (elm_widget_can_focus_get(cur))
|
||||||
((!elm_widget_focus_get(cur)) || child_circular))
|
|
||||||
{
|
{
|
||||||
elm_widget_focus_steal(cur);
|
elm_widget_focus_steal(cur);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue