After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 694059 - GtkTreeView accessible object:state-changed-expanded event brokenness
GtkTreeView accessible object:state-changed-expanded event brokenness
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Accessibility
3.7.x
Other Linux
: Normal normal
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2013-02-18 01:56 UTC by Joanmarie Diggs (IRC: joanie)
Modified: 2013-02-19 22:25 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
event listener (177 bytes, text/plain)
2013-02-18 01:56 UTC, Joanmarie Diggs (IRC: joanie)
Details

Description Joanmarie Diggs (IRC: joanie) 2013-02-18 01:56:09 UTC
Created attachment 236518 [details]
event listener

Steps to reproduce:
1. Launch gtk3-demo
2. Run the attached event listener in a terminal
3. Expand the "Tree View" item in the list of available demos
4. Launch the "Tree Store" demo.
5. Collapse "January"
6. Expand "January"

Expected results:

a. After performing step 3, one object:state-changed:expanded event
   to indicate that the node is expanded (detail1 == 1).

b. After performing step 5, one object:state-changed:expanded event
   to indicate January is collapsed (detail1 == 0).

c. After performing step 6, one object:state-changed event to indicate
   January is expanded (detail1 == 1).

Actual results:

a. After performing step 3, there are two object:state-changed:expanded
   events, the first with detail1 == 1 as expected. But then a second
   event for the same accessible with detail1 == 0 gets emitted. This
   event is bogus because it indicates the node was collapsed.

b. After performing step 5, there are no object:state-changed:expanded
   events to let an AT know the item is now collapsed.

c. After performing step 6, 12(!!) object:state-changed:expanded events
   are emitted. It appears to be the same issue as in item a) above,
   but once for each column in the row. The event should only be emitted
   for the expansion cell.
Comment 1 Joanmarie Diggs (IRC: joanie) 2013-02-18 01:57:03 UTC
My output from performing the steps:

$ ./tree.py
object:state-changed:expanded(1, 0, 0)
        source: [table cell | Tree View]
        host_application: [application | gtk3-demo]
object:state-changed:expanded(0, 0, 0)
        source: [table cell | Tree View]
        host_application: [application | gtk3-demo]
object:state-changed:expanded(1, 0, 0)
        source: [table cell | January]
        host_application: [application | gtk3-demo]
object:state-changed:expanded(0, 0, 0)
        source: [table cell | January]
        host_application: [application | gtk3-demo]
object:state-changed:expanded(1, 0, 0)
        source: [table cell | ]
        host_application: [application | gtk3-demo]
object:state-changed:expanded(0, 0, 0)
        source: [table cell | ]
        host_application: [application | gtk3-demo]
object:state-changed:expanded(1, 0, 0)
        source: [table cell | ]
        host_application: [application | gtk3-demo]
object:state-changed:expanded(0, 0, 0)
        source: [table cell | ]
        host_application: [application | gtk3-demo]
object:state-changed:expanded(1, 0, 0)
        source: [table cell | ]
        host_application: [application | gtk3-demo]
object:state-changed:expanded(0, 0, 0)
        source: [table cell | ]
        host_application: [application | gtk3-demo]
object:state-changed:expanded(1, 0, 0)
        source: [table cell | ]
        host_application: [application | gtk3-demo]
object:state-changed:expanded(0, 0, 0)
        source: [table cell | ]
        host_application: [application | gtk3-demo]
object:state-changed:expanded(1, 0, 0)
        source: [table cell | ]
        host_application: [application | gtk3-demo]
object:state-changed:expanded(0, 0, 0)
        source: [table cell | ]
        host_application: [application | gtk3-demo]