[g-a-devel] AccessibleComponent_getAccessibleAtPoint(): doesn't work for all cases?
- From: "Quiring, Sam" <Sam Quiring windriver com>
- To: <gnome-accessibility-devel gnome org>
- Subject: [g-a-devel] AccessibleComponent_getAccessibleAtPoint(): doesn't work for all cases?
- Date: Wed, 11 Feb 2009 08:22:48 -0800
Greetings,
Over in the Mozilla
accessibility mailing list (dev-accessibility lists mozilla org)
I asked how to determine the topmost object under the mouse, the object that
would get the event if the user clicked? Aaron Leventhal answered "MSAA
and AT-SPI have a way to get the accessible object at a point". With some
help I eventually discovered the at-spi
routine AccessibleComponent_getAccessibleAtPoint(), which has worked great
until today.
I have a GTK window
on the screen and the mouse is hovering over a Text box. Below is a dump
of part of the at-spi accessibility tree representing that area of the
window. The mouse is at (x,y) = (1060, 538). This is inside the
text object shown at the last line of the dump.
I call
AccessibleComponent_getAccessibleAtPoint(...,1060, 538) on the "page tab list"
object and it returns NULL. Given the data in the dump, I can see how this
might have happened: there are exactly 2 children of "page tab list" and
neither contain (1060, 538):
child 2/2 (n:,d:,r:page tab list) Box[756,508,506,170]
[actions: ] [subs: Component Selection ] (children: 2)
child 1/2
(n:,d:,r:page tab) Box[-2147483648,-2147483648,0,0] [actions: ] [subs: Component
Text ] (children: 1)
child 2/2 (n:,d:,r:page tab) Box[756,508,0,0]
[actions: ] [subs: Component Text ] (children: 1)
but if we look further, we can see that deeper
descendents do contain (1060, 538), including the text box at the bottom of the
dump, which is what I was looking for.
Is this a bug in
AccessibleComponent_getAccessibleAtPoint()? If not, is there another
routine I should be calling to get the accessible object at a
point?
-Sam
key:
Box[x, y, width, height]
child 2/2
(n:,d:,r:page tab list) Box[756,508,506,170] [actions: ] [subs: Component
Selection ] (children: 2)
child 2/2 - [states: enabled,
sensitive, showing, visible]
child 1/2 (n:,d:,r:page tab)
Box[-2147483648,-2147483648,0,0] [actions: ] [subs: Component Text ] (children:
1)
child 2/2 (n:,d:,r:page tab) Box[756,508,0,0] [actions: ] [subs:
Component Text ] (children: 1)
child 1/1 (n:,d:,r:filler)
Box[756,508,506,170] [actions: ] [subs: Component ] (children:
2)
child 1/2 (n:,d:,r:scroll pane)
Box[762,514,494,122] [actions: ] [subs: Component ] (children:
2)
child 1/2 (n:,d:,r:viewport)
Box[762,514,476,122] [actions: ] [subs: Component ] (children:
1)
child 1/1
(n:,d:,r:panel) Box[764,516,472,385] [actions: ] [subs: Component ] (children:
12)
child
1/12 (n:,d:,r:panel) Box[1162,528,68,56] [actions: ] [subs: Component ]
(children:
1)
...
child
11/12 (n:,d:,r:panel) Box[912,528,250,25] [actions: ] [subs: Component ]
(children:
1)
child 1/1 (n:,d:,r:text) Box[912,528,250,25] [actions: activate] [subs: Action
Component EditableText Text ] (children:
0)
[Date Prev][
Date Next] [Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]