GNOME Bugzilla – Bug 694059
GtkTreeView accessible object:state-changed-expanded event brokenness
Last modified: 2013-02-19 22:25:31 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.
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]