Fix List keyboard navigation on horizontal mode
Closes ticket #619 SVN revision: 54411
This commit is contained in:
parent
cdbd1bae85
commit
4e0df34976
|
@ -149,17 +149,36 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
|
||||||
/* TODO: fix logic for horizontal mode */
|
/* TODO: fix logic for horizontal mode */
|
||||||
if ((!strcmp(ev->keyname, "Left")) || (!strcmp(ev->keyname, "KP_Left")))
|
if ((!strcmp(ev->keyname, "Left")) || (!strcmp(ev->keyname, "KP_Left")))
|
||||||
{
|
{
|
||||||
x -= step_x;
|
if ((wd->h_mode) &&
|
||||||
|
(((evas_key_modifier_is_set(ev->modifiers, "Shift")) &&
|
||||||
|
(_item_multi_select_up(wd)))
|
||||||
|
|| (_item_single_select_up(wd))))
|
||||||
|
{
|
||||||
|
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
|
||||||
|
return EINA_TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
x -= step_x;
|
||||||
}
|
}
|
||||||
else if ((!strcmp(ev->keyname, "Right")) || (!strcmp(ev->keyname, "KP_Right")))
|
else if ((!strcmp(ev->keyname, "Right")) || (!strcmp(ev->keyname, "KP_Right")))
|
||||||
{
|
{
|
||||||
x += step_x;
|
if ((wd->h_mode) &&
|
||||||
|
(((evas_key_modifier_is_set(ev->modifiers, "Shift")) &&
|
||||||
|
(_item_multi_select_down(wd)))
|
||||||
|
|| (_item_single_select_down(wd))))
|
||||||
|
{
|
||||||
|
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
|
||||||
|
return EINA_TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
x += step_x;
|
||||||
}
|
}
|
||||||
else if ((!strcmp(ev->keyname, "Up")) || (!strcmp(ev->keyname, "KP_Up")))
|
else if ((!strcmp(ev->keyname, "Up")) || (!strcmp(ev->keyname, "KP_Up")))
|
||||||
{
|
{
|
||||||
if (((evas_key_modifier_is_set(ev->modifiers, "Shift")) &&
|
if ((!wd->h_mode) &&
|
||||||
(_item_multi_select_up(wd)))
|
(((evas_key_modifier_is_set(ev->modifiers, "Shift")) &&
|
||||||
|| (_item_single_select_up(wd)))
|
(_item_multi_select_up(wd)))
|
||||||
|
|| (_item_single_select_up(wd))))
|
||||||
{
|
{
|
||||||
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
|
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
|
@ -169,9 +188,10 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
|
||||||
}
|
}
|
||||||
else if ((!strcmp(ev->keyname, "Down")) || (!strcmp(ev->keyname, "KP_Down")))
|
else if ((!strcmp(ev->keyname, "Down")) || (!strcmp(ev->keyname, "KP_Down")))
|
||||||
{
|
{
|
||||||
if (((evas_key_modifier_is_set(ev->modifiers, "Shift")) &&
|
if ((!wd->h_mode) &&
|
||||||
(_item_multi_select_down(wd)))
|
(((evas_key_modifier_is_set(ev->modifiers, "Shift")) &&
|
||||||
|| (_item_single_select_down(wd)))
|
(_item_multi_select_down(wd)))
|
||||||
|
|| (_item_single_select_down(wd))))
|
||||||
{
|
{
|
||||||
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
|
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
|
@ -195,17 +215,37 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
|
||||||
}
|
}
|
||||||
else if (!strcmp(ev->keyname, "Prior"))
|
else if (!strcmp(ev->keyname, "Prior"))
|
||||||
{
|
{
|
||||||
if (page_y < 0)
|
if (wd->h_mode)
|
||||||
y -= -(page_y * v_h) / 100;
|
{
|
||||||
|
if (page_x < 0)
|
||||||
|
x -= -(page_x * v_w) / 100;
|
||||||
|
else
|
||||||
|
x -= page_x;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
y -= page_y;
|
{
|
||||||
|
if (page_y < 0)
|
||||||
|
y -= -(page_y * v_h) / 100;
|
||||||
|
else
|
||||||
|
y -= page_y;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (!strcmp(ev->keyname, "Next"))
|
else if (!strcmp(ev->keyname, "Next"))
|
||||||
{
|
{
|
||||||
if (page_y < 0)
|
if (wd->h_mode)
|
||||||
y += -(page_y * v_h) / 100;
|
{
|
||||||
|
if (page_x < 0)
|
||||||
|
x += -(page_x * v_w) / 100;
|
||||||
|
else
|
||||||
|
x += page_x;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
y += page_y;
|
{
|
||||||
|
if (page_y < 0)
|
||||||
|
y += -(page_y * v_h) / 100;
|
||||||
|
else
|
||||||
|
y += page_y;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (!strcmp(ev->keyname, "Escape"))
|
else if (!strcmp(ev->keyname, "Escape"))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue