GNOME Bugzilla – Bug 583811
Doing a select all in OOo Writer causes Orca to say "selected" for each paragraph
Last modified: 2009-06-20 19:20:53 UTC
I think this patch (from bug 387556) may have introduced a regression. :-( 1) Write five line with oowriter application, pressing Return at the end of each line: Will Mike Attila Monicca Mathew 2) Pessss Ctrl+a key to select all the text. You will hear "Selected. Selected. Selected. Selected. Selected." (One "Selected" for each line of text). Prior to this patch, you would only hear "Selected" being spoken once.
Created attachment 135335 [details] [review] revision 1 Pylinted and functionally tested. I still need to regression test it which I'll do now.
I ran the regression tests. Only one difference, and the difference only occurs when running the test; not in actual use. It would appear to be a timing issue. Regression test: Test 1 of 9 FAILED: ../keystrokes/gtk-demo/role_label.py:This message box label DIFFERENCES FOUND: BRAILLE LINE: 'gtk-demo Application Information Alert This message box has been popped up the following $l' VISIBLE: 'This message box has been popped', cursor=1 BRAILLE LINE: 'gtk-demo Application Information Alert number of times: $l' VISIBLE: 'number of times: $l', cursor=17 SPEECH OUTPUT: '' SPEECH OUTPUT: 'This message box has been popped up the following number of times: label' - SPEECH OUTPUT: 'selected' ~~~~~~~~~~~~~~ Actual use: Both with and without my patch we do not do the above; instead we speak 'This message box has been popped up the following number of times:' Then we speak 'selected'. Finally we speak the role 'label'. ~~~~~~~~~~~~~~ My patch is limited to the following conditions: 1. We get an object:text-selection-changed event. 2. We get that event for an object which lacks STATE_FOCUSED. When we Tab to the label, it should have STATE_FOCUSED. The fact that my patch impacts this suggests that when running the regression tests, this label which we've tabbed to lacks STATE_FOCUSED. Sure enough, debug.out confirms this: vvvvv PROCESS OBJECT EVENT object:text-selection-changed vvvvv OBJECT EVENT: object:text-selection-changed detail=(0,0) app.name='gtk-demo' name='This message box has been popped up the following number of times:' role='label' state='enabled focusable multi line sensitive showing visible' relations='' ^^^^^ PROCESS OBJECT EVENT object:text-selection-changed ^^^^^ KEYEVENT: type=1 hw_code=23 modifiers=16400 event_string=(Tab) is_text=True time=1243277648.366364 orca.isModifierKey: returning: False orca.isModifierKey: returning: False ---------> QUEUEING EVENT focus: DEQUEUED EVENT focus: <---------- vvvvv PROCESS OBJECT EVENT focus: vvvvv OBJECT EVENT: focus: detail=(0,0) app.name='gtk-demo' name='This message box has been popped up the following number of times:' role='label' state='enabled focusable focused multi line sensitive showing visible' relations='' ^^^^^ PROCESS OBJECT EVENT focus: ^^^^^ Will suggestions? (And if the suggestion is to adjust the regression test after the check-in of the speechgenerator refactor, please review this patch. :-) ) Thanks!
Created attachment 135348 [details] role_label.debug file from a successful run (In reply to comment #2) > when running the test; not in actual use. It would appear to be a timing issue. This is strange. This test has always worked for me. :-( orca@opensolaris:~/orca/test/harness$ gnome-about --version Xlib: extension "RANDR" missing on display ":1.0". GNOME gnome-about 2.24.2 orca@opensolaris:~/orca/test/harness$ orca --version Xlib: extension "RANDR" missing on display ":1.0". Orca 2.27.2 orca@opensolaris:~/orca/test/harness$ uname -a SunOS opensolaris 5.11 snv_111b i86pc i386 i86pc Solaris .... Test 1 of 9 SUCCEEDED: ../keystrokes/gtk-demo/role_label.py:This message box lab el .... Attached is the role_label.debug file I got when doing a runone.sh. Here's a stripped down version of the relevant event stream: DBus Logging.startRecording KEYEVENT: type=0 hw_code=23 modifiers=0 event_string=(Tab) is_text=True time=1243285690.896701 orca.keyEcho: string to echo: Tab vvvvv PROCESS OBJECT EVENT object:state-changed:focused vvvvv OBJECT EVENT: object:state-changed:focused detail=(0,0) app.name='gtk-demo' name='OK' role='push button' state='enabled focusable focused selectable sensitive showing visible' relations='' Finding top-level object for source.name=OK --> obj.name= --> obj.name= --> obj.name=Information ^^^^^ PROCESS OBJECT EVENT object:state-changed:focused ^^^^^ vvvvv PROCESS OBJECT EVENT object:state-changed:focused vvvvv OBJECT EVENT: object:state-changed:focused detail=(1,0) app.name='gtk-demo' name='This message box has been popped up the following number of times:' role='label' state='enabled focusable multi line sensitive showing visible' relations='' ... SPEECH OUTPUT: '' SPEECH OUTPUT: 'This message box has been popped up the following number of times: label' ^^^^^ PROCESS OBJECT EVENT object:state-changed:focused ^^^^^ vvvvv PROCESS OBJECT EVENT object:text-caret-moved vvvvv OBJECT EVENT: object:text-caret-moved detail=(66,0) app.name='gtk-demo' name='This message box has been popped up the following number of times:' role='label' state='enabled focusable multi line sensitive showing visible' relations='' ... BRAILLE LINE: 'gtk-demo Application Information Alert number of times: $l' VISIBLE: 'number of times: $l', cursor=17 ^^^^^ PROCESS OBJECT EVENT object:text-caret-moved ^^^^^ vvvvv PROCESS OBJECT EVENT object:text-selection-changed vvvvv OBJECT EVENT: object:text-selection-changed detail=(0,0) app.name='gtk-demo' name='This message box has been popped up the following number of times:' role='label' state='enabled focusable multi line sensitive showing visible' relations='' SPEECH OUTPUT: 'selected' ^^^^^ PROCESS OBJECT EVENT object:text-selection-changed ^^^^^ KEYEVENT: type=1 hw_code=23 modifiers=0 event_string=(Tab) is_text=True time=1243285690.953010 orca.isModifierKey: returning: False orca.isModifierKey: returning: False vvvvv PROCESS OBJECT EVENT focus: vvvvv OBJECT EVENT: focus: detail=(0,0) app.name='gtk-demo' name='This message box has been popped up the following number of times:' role='label' state='enabled focusable focused multi line sensitive showing visible' relations='' ^^^^^ PROCESS OBJECT EVENT focus: ^^^^^ DBus Logging.stopRecording > Will suggestions? Let's first figure out if/why there are differences between the event streams on our machines.
Where are we with this one?
(In reply to comment #4) > Where are we with this one? Beats the living heck out of me. ;-)
We talked about this the other day and agreed to commit this patch since it fixes the bug. Done for both master and the gnome-2-26 branch.