atspi: consider scrollable parent for "GetNeighbor"
To determine the next object,
find top scrollable parent of next object excluding scrollable parents of start
object, and check if the next object exists inside of the top scrollable parent
viewport.
If there is not top scrollable parent, then use the next object.
(layout)
|
|----------|----------|
| | |
(btn1) (scroller) (btn3)
|
|
|----------|----------|
| | |
(btn2) (genlist) (toolbar)
[case: top scrollable parent is scroller]
If current highlighted(start) object is btn1, and the 10th genlist item shows
just under the btn1 (i.e. btn2, and 1st ~ 9th items are scrolled out),
then the next object should be the 10th item.
[case: top scrollable parent is NULL]
After the 10th genlist item grabs highlight, the previous object should be the
9th genlist item, not the btn1. In this case scrollable paretns of start object
are scroller, and genlist. the next object has same scrollable parents. So the
top scrollable parent is NULL.
If the 10th genlist item is the next object of btn1, then the btn1 object could
be the previous object of 10th genlist. But this patch set make the 9th genlist
item previous. This behavior is quite dependent on UX definition.
Change-Id: I8ded2d533f0b77202be25713eafca652e1886bcb