GNOME Bugzilla – Bug 657646
Default Speech stopping on active descendant change is too restrictive
Last modified: 2011-08-29 23:00:14 UTC
At this moment, by default any active-descendant-change event will means a speech stop. But IMHO, this is too restrictive as the following environment could be really common: * A container and their children * This container is the one that will have the state STATE_MANAGES_DESCENDANTS * Container receives the focus event => focus speech * First selection/active item => active-descendant event => active item speech But with the default behaviour the active event will stop the speech of the focused object. And that could be in general misleading, as the container provides the context of the situation.
Created attachment 195104 [details] [review] Fixes the bug
Review of attachment 195104 [details] [review]: - return True + if (event.source == orca_state.locusOfFocus) \ + and (event.any_data.parent == event.source): + return False + else: + return True One nit: this is not C or C++ (The parens are unneeded and while they don't hurt anything, they annoy me. :-P Mind removing them?) One actual potential problem: We have no guarante that we'll have event.any_data. Mind you, we should, but.... If event.any_data == None, your event.any_data.parent check is going to traceback and that will kill speech and possibly the further processing of the new event. So... if there's not event.any_data, let's return True (more conservative/less change). Make sense? Thanks!
Created attachment 195107 [details] [review] Updated patch
Created attachment 195108 [details] [review] Updated patch (2) With some extra suggestions. Anyway, I still need to further test it.
Created attachment 195111 [details] [review] Updated (3)
Comment on attachment 195111 [details] [review] Updated (3) master: http://git.gnome.org/browse/orca/commit/?id=8a9f9f8cb937aa8d45e7d387fa7f0c27e0225c5b orca-xdesktop: http://git.gnome.org/browse/orca/commit/?h=orca-xdesktop&id=1598d291661c41983525e5b5b3413f5e8a40e1a5 Thanks!!
I think the change is sound and good and was worth including in 3.1.90. I'm going to close this bug out. Seeing as how Orca from master is now the text-book example of unstable, I'll be opening a new 3.1.90 is borked meta-bug later today or tomorrow. ;-) New issues can go on it, should they exist w.r.t. this bug.