case ELM_ACTIVATE_LEFT:
break;
+ case ELM_ACTIVATE_BACK:
+ type = ELM_ACCESS_ACTION_BACK;
+ break;
+
default:
break;
}
EAPI void
_elm_access_highlight_set(Evas_Object* obj)
{
+ Evas *evas;
Elm_Access_Info *ac;
Evas_Object *ho;
+ Evas_Coord_Point ho_point = { 0, 0 };
if (!obj) return;
if (!ac) return;
_access_highlight_read(ac, obj);
+
+ /* move mouse position to inside of highlight object. if an object has a
+ highlight by highlight_cycle();, the mouse still positions at previous
+ position which would be made by MOUSE_IN event. */
+ evas = evas_object_evas_get(obj);
+ if (!evas) return;
+
+ evas_object_geometry_get(obj, &ho_point.x, &ho_point.y, 0, 0);
+ evas_event_feed_mouse_move(evas, ho_point.x, ho_point.y, 0, NULL);
}
EAPI void
{
Elm_Access_Item *ai = _access_add_set(ac, type);
if (!ai) return;
+ ai->func = NULL;
ai->data = eina_stringshare_add(text);
}
EAPI void
_elm_access_highlight_object_activate(Evas_Object *obj, Elm_Activate act)
{
- Evas_Object *highlight;
+ Evas_Object *ho;
- highlight = _access_highlight_object_get(obj);
- if (!highlight) return;
+ ho = _access_highlight_object_get(obj);
+ if (!ho) return;
- _elm_access_read_mode_set(EINA_FALSE);
+ switch (act)
+ {
+ case ELM_ACTIVATE_DEFAULT:
+ case ELM_ACTIVATE_UP:
+ case ELM_ACTIVATE_DOWN:
+ _elm_access_read_mode_set(EINA_FALSE);
+
+ if (!elm_object_focus_get(ho))
+ elm_object_focus_set(ho, EINA_TRUE);
+
+ elm_widget_activate(ho, act);
+ break;
+
+ case ELM_ACTIVATE_BACK:
+ elm_widget_activate(ho, act);
+ break;
- if (!elm_object_focus_get(highlight))
- elm_object_focus_set(highlight, EINA_TRUE);
+ default:
+ break;
+ }
- elm_widget_activate(highlight, act);
return;
}
break;
case ELM_ACCESS_ACTION_SCROLL:
+ _elm_access_highlight_object_scroll(obj, a->mouse_type, a->x, a->y);
break;
case ELM_ACCESS_ACTION_BACK: