From: Shinwoo Kim Date: Thu, 3 Aug 2017 06:46:25 +0000 (+0900) Subject: atspi: do not accept invisible object X-Git-Tag: submit/tizen_3.0/20170810.044042~9 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b10b4bf343fb50f158bac7d90033ff74ec7fad6b;p=platform%2Fupstream%2Felementary.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: I0492eb9f5f265211521f066acd6f56d9c24356c0 --- diff --git a/src/lib/elm_atspi_bridge.c b/src/lib/elm_atspi_bridge.c index 6a8104504..b3a77ed83 100644 --- a/src/lib/elm_atspi_bridge.c +++ b/src/lib/elm_atspi_bridge.c @@ -4220,6 +4220,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); @@ -4257,6 +4263,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;