From: JunsuChoi Date: Wed, 10 Jan 2018 10:15:00 +0000 (+0900) Subject: atspi: do not accept invisible object X-Git-Tag: submit/sandbox/upgrade/efl120/20180319.053334~386 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F87%2F166487%2F3;p=platform%2Fupstream%2Fefl.git atspi: do not accept invisible object Issue: If an object is child of scrollable parent, then the object is accepted even though the object is invisible. Solution: Do not accept invisible object. Change-Id: I60c1b7ccdbaac2239f6bd8cbdac7da1e3cf2d0ef --- diff --git a/src/lib/elementary/elm_atspi_bridge.c b/src/lib/elementary/elm_atspi_bridge.c index db1c477..1203cb0 100644 --- a/src/lib/elementary/elm_atspi_bridge.c +++ b/src/lib/elementary/elm_atspi_bridge.c @@ -4290,6 +4290,12 @@ static unsigned char _object_is_highlightable(accessibility_navigation_pointer_t return _state_set_is_set(state_set, ATSPI_STATE_HIGHLIGHTABLE); } +static unsigned char _object_is_visible(accessibility_navigation_pointer_table *table, void *obj) +{ + uint64_t state_set = CALL(object_get_state_set, obj); + return _state_set_is_set(state_set, ATSPI_STATE_VISIBLE); +} + static unsigned char _object_is_showing(accessibility_navigation_pointer_table *table, void *obj) { uint64_t state_set = CALL(object_get_state_set, obj); @@ -4327,6 +4333,7 @@ static void *_get_scrollable_parent(accessibility_navigation_pointer_table *tabl static unsigned char _accept_object(accessibility_navigation_pointer_table *table, void *obj) { if (!obj) return 0; + if (!_object_is_visible(table, obj)) return 0; if (!_accept_object_check_role(table, obj)) return 0; if (CALL(get_object_in_relation_by_type, obj, ATSPI_RELATION_CONTROLLED_BY) != NULL) return 0; if (!_object_is_highlightable(table, obj)) return 0;