o = evas_object_name_find(evas_object_evas_get(obj), "_elm_access_disp");
if (!o)
{
+ /* edje_object_add(); calls evas_event_feed_mouse_move();
+ and it calls _access_obj_mouse_in_cb(); again. */
+ _elm_access_mouse_event_enabled_set(EINA_FALSE);
o = edje_object_add(evas_object_evas_get(obj));
evas_object_name_set(o, "_elm_access_disp");
evas_object_layer_set(o, ELM_OBJECT_LAYER_TOOLTIP);
Elm_Focus_Direction dir,
Evas_Object **next)
{
+ Elm_Access_Info *ac;
+ Evas_Object *clipper;
+
if (!next)
return EINA_FALSE;
*next = NULL;
/* focusable object but does not have access info */
if (_elm_config->access_mode)
{
- if (!_elm_access_object_get(obj)) return EINA_FALSE;
+ ac = _elm_access_object_get(obj);
+ if (!ac) return EINA_FALSE;
+
+ /* check whether the hover object is visible or not */
+ if (!evas_object_visible_get(ac->hoverobj)) return EINA_FALSE;
+
+ clipper = evas_object_clip_get(ac->hoverobj);
+ while (clipper)
+ {
+ if (!evas_object_visible_get(clipper)) return EINA_FALSE;
+ clipper = evas_object_clip_get(clipper);
+ }
}
if (elm_widget_focus_get(obj))