From: Shinwoo Kim Date: Tue, 12 Sep 2017 05:44:39 +0000 (+0900) Subject: atspi: enhance _accessible_at_point_top_down_get X-Git-Tag: submit/tizen_3.0/20171019.130042~27 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b81db08d75d968f005810a892039e944dd517b0c;p=platform%2Fupstream%2Felementary.git atspi: enhance _accessible_at_point_top_down_get If there is only one valid child at point, then return it. The evas_tree_objects_at_xy_get could not find proper object, if application does not have well aligned objects. This could be a role of application, but this patch set could solve somehow. Change-Id: I6326a23b88904f6003a99e8b17885452890c7222 --- diff --git a/src/lib/elm_widget.c b/src/lib/elm_widget.c index 4a6530bc9..3f57c115a 100644 --- a/src/lib/elm_widget.c +++ b/src/lib/elm_widget.c @@ -7371,6 +7371,17 @@ _accessible_at_point_top_down_get(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUSE if (_is_inside(child, x, y) && _is_acceptable_leaf(child)) valid_children = eina_list_append(valid_children, child); } + + /* If there is only one valid child at point, then return it. + The evas_tree_objects_at_xy_get could not find proper object, + if application does not have well aligned objects. */ + if (eina_list_count(valid_children) == 1) + { + eina_list_free(children); + child = eina_list_nth(valid_children, 0); + return child; + } + /* Get evas_object stacked at given x,y coordinates starting from top */ Eina_List *stack = evas_tree_objects_at_xy_get(evas_object_evas_get(obj), NULL, x, y); /* Foreach stacked object starting from top */