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 517127 - Orca doesn't always speak expected message when selecting all
Orca doesn't always speak expected message when selecting all
Status: RESOLVED FIXED
Product: orca
Classification: Applications
Component: speech
2.21.x
Other All
: Normal minor
: 2.24.0
Assigned To: Rich Burridge
Orca Maintainers
Depends on:
Blocks: 519547 519556
 
 
Reported: 2008-02-18 03:59 UTC by Joanmarie Diggs (IRC: joanie)
Modified: 2008-05-20 17:14 UTC
See Also:
GNOME target: ---
GNOME version: 2.21/2.22


Attachments
Orca debug output whilst testing this problem. (17.83 KB, text/plain)
2008-02-19 19:01 UTC, Rich Burridge
  Details
Patch to add a handler for "object:text-selection-changed" events. (1.05 KB, patch)
2008-02-19 21:33 UTC, Rich Burridge
needs-work Details | Review
Orca debug generated when using "needs-work" patch (16.23 KB, text/plain)
2008-04-30 16:09 UTC, Rich Burridge
  Details
Revision #1. (1.71 KB, patch)
2008-04-30 17:47 UTC, Rich Burridge
none Details | Review
gtk-demo regression test results after applying the patch in attachment 110178 (83.93 KB, text/plain)
2008-04-30 21:05 UTC, Rich Burridge
  Details
oowriter regression test results after applying the patch in attachment 110178 (138.42 KB, text/plain)
2008-04-30 21:06 UTC, Rich Burridge
  Details
oocalc regression test results applying applying the patch in attachment 110178 (38.42 KB, text/plain)
2008-04-30 21:07 UTC, Rich Burridge
  Details
Analysis of the gtk-demo regression test failures. (26.14 KB, text/plain)
2008-05-01 15:00 UTC, Rich Burridge
  Details
gtk-demo regression test results WITHOUT applying the patch in this bug. (73.42 KB, text/plain)
2008-05-01 16:12 UTC, Rich Burridge
  Details
Analysis of the first failure in the role_label.py test. (25.56 KB, text/plain)
2008-05-01 16:52 UTC, Rich Burridge
  Details
Revision #2. (8.15 KB, patch)
2008-05-02 23:45 UTC, Rich Burridge
needs-work Details | Review
gtk-demo regression test results after applying patch - revision #2 (65.57 KB, text/plain)
2008-05-02 23:55 UTC, Rich Burridge
  Details
Revision #3. (13.91 KB, patch)
2008-05-06 01:02 UTC, Rich Burridge
needs-work Details | Review
gtk-demo regression test results after applying patch - revision #3 (59.36 KB, text/plain)
2008-05-06 01:06 UTC, Rich Burridge
  Details
Revision #4. (21.10 KB, patch)
2008-05-06 17:31 UTC, Rich Burridge
none Details | Review
gtk-demo regression test results after applying revision #4 of the patch. (59.82 KB, text/plain)
2008-05-06 17:35 UTC, Rich Burridge
  Details
Revision 5. (21.84 KB, patch)
2008-05-06 19:07 UTC, Rich Burridge
none Details | Review
oowriter regression test results with patch revision #5. (56.46 KB, text/plain)
2008-05-06 21:15 UTC, Rich Burridge
  Details
oocalc regression test results with patch revision #5. (24.57 KB, text/plain)
2008-05-06 21:41 UTC, Rich Burridge
  Details
Revision #6. (24.01 KB, patch)
2008-05-07 17:05 UTC, Rich Burridge
committed Details | Review
Changes to fixup the oocalc regression tests. (19.65 KB, patch)
2008-05-08 22:52 UTC, Rich Burridge
committed Details | Review

Description Joanmarie Diggs (IRC: joanie) 2008-02-18 03:59:05 UTC
======
Test 1
======
1. In a new Gedit document type:

The quick brown fox
jumped over the lazy dog.

2. Press Control + Home to move to the beginning of the document.

3. Press Control + A to select the entire document

Expected results: Orca would say 'Entire document selected'

Actual results:  Orca says nothing.

4. Press Right Arrow once to move one character away from the
   beginning.

5. Press Control + A to select the entire document.

Expected/Actual results:  Orca says 'Entire document selected'

Note:  It seems that as long as the caret is NOT at the very beginning of the document, things work as expected.

======
Test 2
======
Repeat test 1 for OOo Writer.

Expected results:  Orca would say 'Enter document selected' each time Control + A was pressed.

Actual results: Orca says nothing.
Comment 1 Joanmarie Diggs (IRC: joanie) 2008-02-18 04:07:52 UTC
The code which causes us to "do the right thang" is at the end of _presentTextAtNewCaretPosition() in default.py.  Because Rich is going to become extremely familiar with that code as part of bug #517048.... ;-)  Rich, I'm assigning this one to you so that it's on your radar.  Hope you don't mind.  (And if you do mind, feel free to reassign to me).  Thanks!

As a related aside, while the hard coding of Control+A will ultimately be removed as part of the "add smarts" bug (bug #510231), the logic of identifying whether or not the entire document has been selected will still be needed -- and apparently that logic is broken. :-( We've talked about the add smarts bug being something for GNOME 2.23; I personally think it would be nice to fix this (the select all) bug for GNOME 2.22.
Comment 2 Rich Burridge 2008-02-19 19:01:08 UTC
Created attachment 105594 [details]
Orca debug output whilst testing this problem.

This looks like an atk bug.

Case #1 - Control-Home, Control-a

The problem here is that we process an "object:text-caret-moved"
event after the Control-Home (line 272) and speak:

SPEECH OUTPUT: 'The quick brown fox'

Then we type Control-a (line 315), but we don't get any events
generated. The selection state of the text has changed. We 
should be at least getting an "object:selection-changed" event.


Case #2 - Right Arrow, Control-a  (line 442)

We press the right arrow key (line 353) and get an "object:text-caret-moved"
event that we process (line 375) and speak:

SPEECH OUTPUT: 'h'

Then we type Control-a (line 387) and we process another 
object:text-caret-moved" event (line 421) and speak:

SPEECH OUTPUT: 'entire document selected'

Will, do you concur?
Comment 3 Willie Walker 2008-02-19 19:51:16 UTC
In looking at the events we get via accerciser, it looks like gedit is emitting a
"object:text-selection-changed" event when one does a Ctrl+a.  I don't see us listening for this event anywhere in Orca, so that might be a core part of the problem.
Comment 4 Rich Burridge 2008-02-19 21:33:11 UTC
Created attachment 105608 [details] [review]
Patch to add a handler for "object:text-selection-changed" events.

Well, unfortunately it's not going to be simple and straightforward.

I initially just tried mapping "object:text-selection-changed" events
into the onSelectionChanged() method but the problem there is that the
event.source is the same as orca_state.locusOfFocus so nothing was
being spoken.

So I adjusted it to call a new routine and forced orca_state.locusOfFocus
to None before calling orca.setLocusOfFocus() and that does the correct
thing in this case, but the problem there is that there are other similar
event ("object:text-caret-moved" for example), that then cause speech
repetition. It might be a case of adding extra code into onCaretMoved()
to prevent that speech repetition.

I also tried calling self._presentTextAtNewCaretPosition() in the new
onTextSelectionChanged() method, but there are similar problems.

One possibility is to just do this in the gedit.py script, but again, 
we are going to have to add in more checks to prevent repetition.

In short, I don't think this is a simple quick fix (unless there is
something obvious I'm missing).

I suggest we investigate it further for GNOME 2.23.X
Comment 5 Willie Walker 2008-03-11 14:06:37 UTC
First coarse pass at GNOME 2.24 planning.
Comment 6 Rich Burridge 2008-04-30 16:09:57 UTC
Created attachment 110170 [details]
Orca debug generated when using "needs-work" patch

So that we have a starting point for when Will and i talk about this later today.

The attached debug.out was generated by latest Orca when the previous patch
(attachment 105608 [details] [review]) was applied.

I'd previous started gedit and put those two lines of text from the
initial bug description in it.

The debug run shows:

1/ Pressing Control-Home to get to start of document (line 247)
2/ Pressing Control-A to select the entire document (line 316)
3/ Processing the new "object:text-selection-changed" event (line 335).
Comment 7 Rich Burridge 2008-04-30 17:47:57 UTC
Created attachment 110178 [details] [review]
Revision #1.

Will and I chatted about this. The "first cut" at this is to adjust the
code at the end of the onCaretMoved method. If there are one or more text selections, then we are expecting that there will be a following
"object:text-selection-changed" event, and we will present the text at 
the new caret position in that handler.

This change fixes this immediate bug. What I now need to determine is
what effect it's had on the various issues in bug #517048, and from that
see what extra work needs to be done.
Comment 8 Rich Burridge 2008-04-30 21:05:27 UTC
Created attachment 110188 [details]
gtk-demo regression test results after applying the patch in attachment 110178 [details] [review]

Commentary to follow.
Comment 9 Rich Burridge 2008-04-30 21:06:14 UTC
Created attachment 110189 [details]
oowriter regression test results after applying the patch in attachment 110178 [details] [review]

Commentary to follow.
Comment 10 Rich Burridge 2008-04-30 21:07:05 UTC
Created attachment 110191 [details]
oocalc regression test results applying applying the patch in attachment 110178 [details] [review]

Commentary to follow.
Comment 11 Rich Burridge 2008-04-30 21:08:20 UTC
I backed off from testing the state of the issues in 
bug #517048, and decided to see what broke in the
gtk-demo, oowriter and oocalc regression tests, when
just this simple change in the last patch was applied.

The following gtk-demo regression tests failed:

SUMMARY: 9 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 10 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_column_header.py
SUMMARY: 1 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 2 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_dialog.py
SUMMARY: 6 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 7 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_icon.py
SUMMARY: 3 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 4 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_page_tab.py
SUMMARY: 3 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 4 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_push_button.py
SUMMARY: 3 SUCCEEDED and 2 FAILED (0 UNEXPECTED) of 5 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_radio_button.py
SUMMARY: 5 SUCCEEDED and 2 FAILED (1 UNEXPECTED) of 7 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_spin_button.py
SUMMARY: 6 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 7 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_table.py
SUMMARY: 10 SUCCEEDED and 2 FAILED (2 UNEXPECTED) of 12 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_text_multiline_navigation2.py
SUMMARY: 9 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 10 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_text_multiline.py
SUMMARY: 4 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 5 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_toggle_button.py
SUMMARY: 5 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 6 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_toolbar.py
SUMMARY: 13 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 14 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_tree_table.py

The following oowriter regression tests failed:

SUMMARY: 1 SUCCEEDED and 3 FAILED (3 UNEXPECTED) of 4 for /home/richb/gnome/orca/trunk/test/keystrokes/oowriter/bug_361747.py
SUMMARY: 0 SUCCEEDED and 2 FAILED (2 UNEXPECTED) of 2 for /home/richb/gnome/orca/trunk/test/keystrokes/oowriter/bug_382408.py
SUMMARY: 0 SUCCEEDED and 5 FAILED (5 UNEXPECTED) of 5 for /home/richb/gnome/orca/trunk/test/keystrokes/oowriter/bug_382415.py
SUMMARY: 0 SUCCEEDED and 8 FAILED (8 UNEXPECTED) of 8 for /home/richb/gnome/orca/trunk/test/keystrokes/oowriter/bug_382880.py
SUMMARY: 0 SUCCEEDED and 8 FAILED (8 UNEXPECTED) of 8 for /home/richb/gnome/orca/trunk/test/keystrokes/oowriter/bug_382888.py
SUMMARY: 2 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 3 for /home/richb/gnome/orca/trunk/test/keystrokes/oowriter/bug_384893.py
SUMMARY: 1 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 2 for /home/richb/gnome/orca/trunk/test/keystrokes/oowriter/bug_413909.py
SUMMARY: 0 SUCCEEDED and 5 FAILED (5 UNEXPECTED) of 5 for /home/richb/gnome/orca/trunk/test/keystrokes/oowriter/bug_435201.py
SUMMARY: 1 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 2 for /home/richb/gnome/orca/trunk/test/keystrokes/oowriter/bug_469367.py

The following oocalc regression tests failed:

SUMMARY: 0 SUCCEEDED and 4 FAILED (4 UNEXPECTED) of 4 for /home/richb/gnome/orca/trunk/test/keystrokes/oocalc/bug_356334.py
SUMMARY: 2 SUCCEEDED and 8 FAILED (8 UNEXPECTED) of 10 for /home/richb/gnome/orca/trunk/test/keystrokes/oocalc/bug_361167.py
SUMMARY: 0 SUCCEEDED and 6 FAILED (6 UNEXPECTED) of 6 for /home/richb/gnome/orca/trunk/test/keystrokes/oocalc/bug_363802.py
SUMMARY: 0 SUCCEEDED and 6 FAILED (6 UNEXPECTED) of 6 for /home/richb/gnome/orca/trunk/test/keystrokes/oocalc/bug_363804.py
SUMMARY: 1 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 2 for /home/richb/gnome/orca/trunk/test/keystrokes/oocalc/bug_364086.py
SUMMARY: 1 SUCCEEDED and 2 FAILED (2 UNEXPECTED) of 3 for /home/richb/gnome/orca/trunk/test/keystrokes/oocalc/bug_364407.py
SUMMARY: 0 SUCCEEDED and 4 FAILED (4 UNEXPECTED) of 4 for /home/richb/gnome/orca/trunk/test/keystrokes/oocalc/bug_433398.py
SUMMARY: 0 SUCCEEDED and 2 FAILED (2 UNEXPECTED) of 2 for /home/richb/gnome/orca/trunk/test/keystrokes/oocalc/bug_435307.py

I'll now analyze the results in more detail.
Comment 12 Rich Burridge 2008-05-01 15:00:05 UTC
Created attachment 110226 [details]
Analysis of the gtk-demo regression test failures.

See the comments at the beginning of this attachment for
a breakdown of the different types of failures.

Still need to determine if these failures are acceptable
differences (i.e. adjust the regression test results) or
whether the change made needs to be further refined.
Comment 13 Rich Burridge 2008-05-01 15:17:21 UTC
Joanie suggested I run the regression tests without my patch and see
what I get. I just tried the role_dialog.py one, and it fails with the
same differences (WITHOUT MY PATCH).

So I'm now going to run the failing regression tests without my patch, then
with my patch and see if I can work out the differences in the differences.

Sigh.
Comment 14 Rich Burridge 2008-05-01 16:12:40 UTC
Created attachment 110230 [details]
gtk-demo regression test results WITHOUT applying the patch in this bug.


There are differences, but a lot of the failures already exists pre-patch.

SUMMARY: 9 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 10 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_column_header.py
SUMMARY: 1 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 2 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_dialog.py
SUMMARY: 6 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 7 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_icon.py
SUMMARY: 8 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 9 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_label.py
SUMMARY: 3 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 4 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_page_tab.py
SUMMARY: 3 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 4 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_push_button.py
SUMMARY: 3 SUCCEEDED and 2 FAILED (0 UNEXPECTED) of 5 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_radio_button.py
SUMMARY: 5 SUCCEEDED and 2 FAILED (1 UNEXPECTED) of 7 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_spin_button.py
SUMMARY: 6 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 7 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_table.py
SUMMARY: 4 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 5 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_toggle_button.py
SUMMARY: 5 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 6 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_toolbar.py
SUMMARY: 13 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 14 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_tree_table.py
Comment 15 Rich Burridge 2008-05-01 16:27:26 UTC
Ignoring the regression test failures caused even though the patch wasn't
applied, we are left with the following differences (which all seem similar):

Test 4 of 9 FAILED: /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_label.py:This message box label caret movement to 'h'
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 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 This message box has been popped up the following $l'
       VISIBLE:  'This message box has been popped', cursor=2
  SPEECH OUTPUT: 'T'
+ SPEECH OUTPUT: 'T'
  SPEECH OUTPUT: 'h'
[FAILURE WAS UNEXPECTED]

----

Test 8 of 9 FAILED: /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_label.py:This message box label caret select 'T' in 'This'
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=2
  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=2
  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
  SPEECH OUTPUT: 'h'
+ SPEECH OUTPUT: 'h'
  SPEECH OUTPUT: 'T'
  SPEECH OUTPUT: 'selected'
[FAILURE WAS UNEXPECTED]

----

Test 5 of 12 FAILED: /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_text_multiline_navigation2.py:Ctrl+Page_Up to beginning of line
DIFFERENCES FOUND:
+ BRAILLE LINE:  'This is only a test. $l'
+      VISIBLE:  'This is only a test. $l', cursor=1
  BRAILLE LINE:  'This is only a test. $l'
       VISIBLE:  'This is only a test. $l', cursor=1
  SPEECH OUTPUT: 'T'
+ SPEECH OUTPUT: 'T'
[FAILURE WAS UNEXPECTED]

----

Test 10 of 12 FAILED: /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_text_multiline_navigation2.py:Shift+Page_Down to deselect text
DIFFERENCES FOUND:
  BRAILLE LINE:  ' $l' 
       VISIBLE:  ' $l', cursor=1
+ BRAILLE LINE:  ' $l'
+      VISIBLE:  ' $l', cursor=1
[FAILURE WAS UNEXPECTED]

----

Test 7 of 10 FAILED: /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_text_multiline.py:Select to end of line
DIFFERENCES FOUND:
+ BRAILLE LINE:  'gtk-demo Application Application Window Frame ScrollPane This is a test. $l'
+      VISIBLE:  'This is a test. $l', cursor=1
  BRAILLE LINE:  'gtk-demo Application Application Window Frame ScrollPane This is a test. $l'
       VISIBLE:  'This is a test. $l', cursor=1
  BRAILLE LINE:  ' $l'
       VISIBLE:  ' $l', cursor=1
  BRAILLE LINE:  'I'm just typing away like a mad little monkey with nothing better to do in my life than eat fruit and type. $l'
       VISIBLE:  'I'm just typing away like a mad ', cursor=1
  BRAILLE LINE:  'I'm just typing away like a mad little monkey with nothing better to do in my life than eat fruit and type. $l'
       VISIBLE:  'y life than eat fruit and type. ', cursor=32
  SPEECH OUTPUT: 'T'
+ SPEECH OUTPUT: 'T'
  SPEECH OUTPUT: 'blank'
  SPEECH OUTPUT: 'I'm just typing away like a mad little monkey with nothing better to do in my life than eat fruit and type.'
  SPEECH OUTPUT: 'I'm just typing away like a mad little monkey with nothing better to do in my life than eat fruit and type.'
  SPEECH OUTPUT: 'selected'
[FAILURE WAS UNEXPECTED]

----
Comment 16 Rich Burridge 2008-05-01 16:52:22 UTC
Created attachment 110233 [details]
Analysis of the first failure in the role_label.py test.

Just looking at the first one of this new failures:

Test 4 of 9 FAILED: /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_label.py:This message box label caret movement to 'h'
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 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 This message box has been popped up the following $l'
       VISIBLE:  'This message box has been popped', cursor=2
  SPEECH OUTPUT: 'T'
+ SPEECH OUTPUT: 'T'
  SPEECH OUTPUT: 'h'
[FAILURE WAS UNEXPECTED]

This is with the "Dialog and Message boxes" gtk demo.
Start the demo, then press Return to activate the
"Message Dialog" button. This brings up a dialog with the text:
"This message box has been popped up the following
number of times:" with this text selected.

Pressing "Home"  moves the text caret to the very beginning of the
text and the text is unselected.

We get an "object:text-caret-moved" event at line 561 and that causes the
first:

SPEECH OUTPUT: 'T'

We then get an "object:text-selection-changed" event at line 574 and that
causes the second:

SPEECH OUTPUT: 'T'

Not quite sure what the best solution for this is yet, but shouldn't
the text at the end of onCaretMoved() have given us 1 text selection
at that point?
Comment 17 Rich Burridge 2008-05-01 20:18:19 UTC
With the previous test, after you've pressed Return when the "Message Dialog"
button has focus, then the next step in the regression test is to press Tab
which selects all the text of the label:

"This message box has been popped up the following number of times:"

At that point, the following events are queued up:

---------> QUEUEING EVENT object:state-changed:focused
---------> QUEUEING EVENT object:state-changed:focused
---------> QUEUEING EVENT object:text-caret-moved
---------> QUEUEING EVENT object:text-selection-changed
---------> QUEUEING EVENT focus:

The second "object:state-changed:focused" event causes:

SPEECH OUTPUT: ''
SPEECH OUTPUT: 'This message box has been popped up the following
number of times: selected label'

to be spoken, but for the "object:text-caret-moved" and
"object:text-selection-changed" events, nothing is spoken.

Because the last user input is a Tab character, when
_presentTextAtNewCaretPosition() is called, then it
doesn't get picked up by the if or any of the elif clauses
and just falls out the bottom of that routine, rather than calling one of the
say[Character,Word,Line,Phrase] routines. In turn, this means
that speakTextSelectionState() isn't getting called, and therefore
we are unable to setup:

self.pointOfReference["lastCursorPosition"]
self.pointOfReference["lastSelections"]

which is why we don't say "unselected" when the next
"object:text-selection-changed" event comes along.

In short, I think we need to rethink this approach.
Or at least rearrange some more code.

Comment 18 Rich Burridge 2008-05-02 23:45:44 UTC
Created attachment 110299 [details] [review]
Revision #2.

Just attaching it here so it doesn't get lost.
Will and I talked about this more this morning.
The intent now is for the onTextSelectionChanged()
handler to specifically deal with uttering "[un]selected"
and the other associated select phrases. onCaretMoved
just deals with caret movement.
Comment 19 Rich Burridge 2008-05-02 23:55:37 UTC
Created attachment 110300 [details]
gtk-demo regression test results after applying patch - revision #2

This is with an older version of pyatspi, so that the regression
tests are in an expected state. There are a few unexpected things
here and I'll need to investigate further on Monday to see exactly 
what's happening. I'm not convinced all of them are bad.

Here's the summary of the failures (also with the known issues and
bugs removed):

SUMMARY: 9 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 10 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_column_header.py
SUMMARY: 7 SUCCEEDED and 2 FAILED (2 UNEXPECTED) of 9 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_label.py
SUMMARY: 9 SUCCEEDED and 3 FAILED (3 UNEXPECTED) of 12 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_text_multiline_navigation2.py
SUMMARY: 7 SUCCEEDED and 3 FAILED (3 UNEXPECTED) of 10 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_text_multiline.py
Comment 20 Rich Burridge 2008-05-05 16:57:41 UTC
After being caught out the last time, I decided to rerun these regression
tests with the very latest Orca, without applying revision #2 of the patch.

SUMMARY: 9 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 10 for
/home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_column_header.py

Test #3 of role_column_header.py fails without the patch.

DIFFERENCES FOUND:
  BRAILLE LINE:  'gtk-demo Application GtkListStore demo Frame ScrollPane Table'
       VISIBLE:  'Table', cursor=1
  BRAILLE LINE:  'gtk-demo Application GtkListStore demo Frame ScrollPane Table 
Description ColumnHeader < > Fixed? 60482 Normal scrollable notebooks and hidden
 tabs'
       VISIBLE:  'scrollable notebooks and hidden ', cursor=1
  SPEECH OUTPUT: ''
  SPEECH OUTPUT: 'table'
  SPEECH OUTPUT: ''
  SPEECH OUTPUT: 'Description column header'
  SPEECH OUTPUT: 'Fixed? check box not checked  60482 Normal scrollable notebook
s and hidden tabs'
+ SPEECH OUTPUT: ' not selected

----

SUMMARY: 7 SUCCEEDED and 2 FAILED (2 UNEXPECTED) of 9 for
/home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_label.py

Just test #5 fails without the patch, which is a known bug:

DIFFERENCES FOUND:
- BUG? - no selection is announced?
+ BRAILLE LINE:  'gtk-demo Application Information Alert This message box has be
en popped up the following $l'
+      VISIBLE:  'This message box has been popped', cursor=2

That means that tests #8 and #9 need to be investigated:

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=2
  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
  SPEECH OUTPUT: 'h'
- SPEECH OUTPUT: 'T'
+ SPEECH OUTPUT: 'This '
?                  ++++

- SPEECH OUTPUT: 'selected'

--

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=2
- SPEECH OUTPUT: 'T'
+ SPEECH OUTPUT: 'This '
?                  ++++

- SPEECH OUTPUT: 'unselected'

----

SUMMARY: 9 SUCCEEDED and 3 FAILED (3 UNEXPECTED) of 12 for
/home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_text_multiline_navigation2.py

All tests succeed without the patch, so that means that tests #3, #4 and #9
need to be investigated:

DIFFERENCES FOUND:
  BRAILLE LINE:  'gtk-demo Application Application Window Frame ScrollPane This is a test.  $l'
       VISIBLE:  'This is a test.  $l', cursor=17
+ SPEECH OUTPUT: 'This is a test. '
- SPEECH OUTPUT: '
- This is only a test.'

--

DIFFERENCES FOUND:
  BRAILLE LINE:  'This is only a test. $l'
       VISIBLE:  'This is only a test. $l', cursor=21
+ SPEECH OUTPUT: 'This is only a test.'
- SPEECH OUTPUT: '
- This is only a test.'

--

DIFFERENCES FOUND:
  BRAILLE LINE:  'gtk-demo Application Application Window Frame ScrollPane This is a test.  $l'
       VISIBLE:  'This is a test.  $l', cursor=1
  SPEECH OUTPUT: 'This is a test. '
- SPEECH OUTPUT: 'page selected to cursor position'

------

SUMMARY: 7 SUCCEEDED and 3 FAILED (3 UNEXPECTED) of 10 for
/home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_text_multiline.py

All tests succeed without the patch, so that means that tests #4, #5 and #7
need to be investigated:

DIFFERENCES FOUND:
  BRAILLE LINE:  'gtk-demo Application Application Window Frame ScrollPane This is a test. $l'
       VISIBLE:  'This is a test. $l', cursor=8
  BRAILLE LINE:  'gtk-demo Application Application Window Frame ScrollPane This is a test. $l'
       VISIBLE:  'This is a test. $l', cursor=10
  BRAILLE LINE:  'gtk-demo Application Application Window Frame ScrollPane This is a test. $l'
       VISIBLE:  'This is a test. $l', cursor=15
- SPEECH OUTPUT: ' is'
?                 -

+ SPEECH OUTPUT: 'is '
?                   +

- SPEECH OUTPUT: 'selected'
- SPEECH OUTPUT: ' a'
?                  -

+ SPEECH OUTPUT: 'a '
?                 +

- SPEECH OUTPUT: 'selected'
- SPEECH OUTPUT: ' test'
?                 -    ^

+ SPEECH OUTPUT: 'test.
?                     ^

- SPEECH OUTPUT: 'selected'
+
+ '

--

DIFFERENCES FOUND:
  BRAILLE LINE:  'gtk-demo Application Application Window Frame ScrollPane This is a test. $l'
       VISIBLE:  'This is a test. $l', cursor=11
- SPEECH OUTPUT: 'test'
?                     ^

+ SPEECH OUTPUT: 'test.
?                     ^

- SPEECH OUTPUT: 'unselected'
+
+ '

--

DIFFERENCES FOUND:
  BRAILLE LINE:  'gtk-demo Application Application Window Frame ScrollPane This is a test. $l'
       VISIBLE:  'This is a test. $l', cursor=1
  BRAILLE LINE:  ' $l'
       VISIBLE:  ' $l', cursor=1
  BRAILLE LINE:  'I'm just typing away like a mad little monkey with nothing better to do in my life than eat fruit and type. $l'
       VISIBLE:  'I'm just typing away like a mad ', cursor=1
  BRAILLE LINE:  'I'm just typing away like a mad little monkey with nothing better to do in my life than eat fruit and type. $l'
       VISIBLE:  'y life than eat fruit and type. ', cursor=32
  SPEECH OUTPUT: 'T'
  SPEECH OUTPUT: 'blank'
  SPEECH OUTPUT: 'I'm just typing away like a mad little monkey with nothing better to do in my life than eat fruit and type.'
- SPEECH OUTPUT: 'I'm just typing away like a mad little monkey with nothing better to do in my life than eat fruit and type.'
- SPEECH OUTPUT: 'selected'


Comment 21 Rich Burridge 2008-05-06 01:02:36 UTC
Created attachment 110429 [details] [review]
Revision #3.

Commentary to follow.
Comment 22 Rich Burridge 2008-05-06 01:06:02 UTC
Created attachment 110430 [details]
gtk-demo regression test results after applying patch - revision #3

Here's where we stand now (using an older version of pyatspi which
doesn't have the regresion test failures in it):

SUMMARY: 0 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 1 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/debug_commands.py
SUMMARY: 9 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 10 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_column_header.py
SUMMARY: 7 SUCCEEDED and 2 FAILED (2 UNEXPECTED) of 9 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_label.py
SUMMARY: 3 SUCCEEDED and 2 FAILED (0 UNEXPECTED) of 5 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_radio_button.py
SUMMARY: 5 SUCCEEDED and 2 FAILED (1 UNEXPECTED) of 7 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_spin_button.py
SUMMARY: 11 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 12 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_text_multiline_navigation2.py

Here's the breakdown of the current failures:

SUMMARY: 0 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 1 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/debug_commands.py

This is failing because I'm testing against with that earlier version of
at-spi (pyatspi really), that doesn't have the caching regression problem.

----

SUMMARY: 9 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 10 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_column_header.py

Regression test #3 fails here without revision #3 of the patch applied
anyhow. This still needs to be investigated though.

----

SUMMARY: 7 SUCCEEDED and 2 FAILED (2 UNEXPECTED) of 9 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_label.py

Regression test #5 is a known bug.

Regression test #8 could actually be considered as producing better output 
with the patch applied:

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=2
  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
  SPEECH OUTPUT: 'h'
+ SPEECH OUTPUT: 'unselected'
  SPEECH OUTPUT: 'T'
  SPEECH OUTPUT: 'selected'
[FAILURE WAS UNEXPECTED]

----

SUMMARY: 3 SUCCEEDED and 2 FAILED (0 UNEXPECTED) of 5 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_radio_button.py

Failures for regression tests #3 and #5 are known issues.

----

SUMMARY: 5 SUCCEEDED and 2 FAILED (1 UNEXPECTED) of 7 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_spin_button.py

Regression test #1 failing is a known bug.
Regression test #4 failing is a known issue.

----

SUMMARY: 11 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 12 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_text_multiline_navigation2.py

This difference is wrong and needs to be further investigated.

DIFFERENCES FOUND:
  BRAILLE LINE:  ' $l'
       VISIBLE:  ' $l', cursor=1
+ SPEECH OUTPUT: 'page selected from cursor position'
[FAILURE WAS UNEXPECTED]

=============================
Comment 23 Rich Burridge 2008-05-06 02:12:59 UTC
W.r.t. the failing test in role_text_multiline_navigation2.py:

The "special case" section of code in speakTextSelectionState()
in default.py (starting about line 6776) is assuming that pressing
any of the special keychords (like Shift-Page-Down) will always
result in a selection. As we can see from this test, that is not
always the case. 

It will need to be modified to check text.getNSelections(). If
zero, then I think we'll need to speak "unselected" instead of 
"selected".

Alternatively, we might just be able to see if
self.pointOfReference["lastSelections"] is an
empty list.

More tomorrow.

Comment 24 Rich Burridge 2008-05-06 17:31:14 UTC
Created attachment 110470 [details] [review]
Revision #4.

Commentary to follow.
Comment 25 Rich Burridge 2008-05-06 17:35:19 UTC
Created attachment 110471 [details]
gtk-demo regression test results after applying revision #4 of the patch.

I think we are getting close. At least for the gtk-demo regresssion tests.
With this latest patch, there are the following failures:

SUMMARY: 0 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 1 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/debug_commands.py

Known problem. I'm using an older version of at-spi/pyatspi because of
the regression failures the latest version causes.

SUMMARY: 9 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 10 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_column_header.py

This failure is not caused by my patch. I believe the regression (#3)
is now wrong. When you initially go Down into the list from the column
headers in the List Store demo, it's not selected (at least in GNOME 2.22).

SUMMARY: 6 SUCCEEDED and 3 FAILED (3 UNEXPECTED) of 9 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_label.py

I believe the extra "unselected" lines in tests #4 and #8 are an improvement
over what we had and the regresssion tests should be adjusted.

Regression test #5 failing is a known bug.

SUMMARY: 3 SUCCEEDED and 2 FAILED (0 UNEXPECTED) of 5 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_radio_button.py

These two failures are known issues.

SUMMARY: 5 SUCCEEDED and 2 FAILED (1 UNEXPECTED) of 7 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_spin_button.py

These two failures area known bug and a known issue.

SUMMARY: 11 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 12 for /home/richb/gnome/orca/trunk/test/keystrokes/gtk-demo/role_text_multiline_navigation2.py

We now have an improved situation. I believe that regression test #10 
should be updated to reflect what is now being output.

The original program in the description of this bug is now happening
again and I'll investigate that next.
Comment 26 Rich Burridge 2008-05-06 19:07:49 UTC
Created attachment 110474 [details] [review]
Revision 5.

This version now fixes the original bug again. Plus gtk-demo regression
test results are still the same as for revision #4.

Probably ready for testing.

I'll try out the oowriter regression tests now.
Comment 27 Rich Burridge 2008-05-06 21:15:13 UTC
Created attachment 110483 [details]
oowriter regression test results with patch revision #5.

I've just run the oowriter tests against the latest revision of this patch,
with the following failures:

SUMMARY: 1 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 2 for /home/richb/gnome/orca/trunk/test/keystrokes/oowriter/bug_413909.py

This is a known bug (bug #523452 -- really OOo issue #87426).

SUMMARY: 0 SUCCEEDED and 5 FAILED (5 UNEXPECTED) of 5 for /home/richb/gnome/orca/trunk/test/keystrokes/oowriter/bug_435201.py

These five failures are all known bugs (speaks the paragraph multiple
times when Orca is run synchronously).

SUMMARY: 0 SUCCEEDED and 2 FAILED (2 UNEXPECTED) of 2 for /home/richb/gnome/orca/trunk/test/keystrokes/oowriter/bug_435226.py

These two failures were unexpected. To be investigated further.
Comment 28 Rich Burridge 2008-05-06 21:41:20 UTC
Created attachment 110485 [details]
oocalc regression test results with patch revision #5.

Here's the tests that are currently failing:

SUMMARY: 2 SUCCEEDED and 2 FAILED (2 UNEXPECTED) of 4 for /home/richb/gnome/orca/trunk/test/keystrokes/oocalc/bug_356334.py

These two failures are known bugs.

------------------

SUMMARY: 3 SUCCEEDED and 3 FAILED (3 UNEXPECTED) of 6 for /home/richb/gnome/orca/trunk/test/keystrokes/oocalc/bug_363804.py

Three failures unexpected.

It's hard to understand how my selection changes have caused this traceback.
To be further investigated.

Traceback (most recent call last):
  • File "/usr/lib/python2.5/site-packages/pyatspi/registry.py", line 586 in handleDeviceEvent
    return client(event) or event.consume
  • File "/usr/lib/python2.5/site-packages/orca/orca.py", line 728 in _processKeyboardEvent
    orca_state.activeScript.echoKey(keyboardEvent):
AttributeError: 'NoneType' object has no attribute 'echoKey'
Traceback (most recent call last):
  • File "/usr/lib/python2.5/site-packages/pyatspi/registry.py", line 586 in handleDeviceEvent
    return client(event) or event.consume
  • File "/usr/lib/python2.5/site-packages/orca/orca.py", line 728 in _processKeyboardEvent
    orca_state.activeScript.echoKey(keyboardEvent):
AttributeError: 'NoneType' object has no attribute 'echoKey'
Traceback (most recent call last):
  • File "/usr/lib/python2.5/site-packages/pyatspi/registry.py", line 586 in handleDeviceEvent
    return client(event) or event.consume
  • File "/usr/lib/python2.5/site-packages/orca/orca.py", line 728 in _processKeyboardEvent
    orca_state.activeScript.echoKey(keyboardEvent):
AttributeError: 'NoneType' object has no attribute 'echoKey'

------------------

SUMMARY: 1 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 2 for /home/richb/gnome/orca/trunk/test/keystrokes/oocalc/bug_364086.py

I believe the test here has been adjusted to work with the latest version
of pyatspi, and is now failing because I'm using an earlier one.

------------------
SUMMARY: 2 SUCCEEDED and 1 FAILED (1 UNEXPECTED) of 3 for /home/richb/gnome/orca/trunk/test/keystrokes/oocalc/bug_364407.py

Same problem here.
Comment 29 Rich Burridge 2008-05-07 17:05:36 UTC
Created attachment 110528 [details] [review]
Revision #6.

Fixes up tests in three regression files too:

test/keystrokes/gtk-demo/role_text_multiline_navigation2.py:
test/keystrokes/gtk-demo/role_label.py:
test/keystrokes/gtk-demo/role_spin_button.py

Will and I went over the patch this morning. It seems to work
well with Gtk+ components, so it's been committed to SVN trunk.
The failures in the oowriter and oocalc regression tests still
need to be determined.
Comment 30 Rich Burridge 2008-05-08 15:56:20 UTC
With the previously run oowriter regression test:

> SUMMARY: 0 SUCCEEDED and 2 FAILED (2 UNEXPECTED) of 2 for
> /home/richb/gnome/orca/trunk/test/keystrokes/oowriter/bug_435226.py
>
> These two failures were unexpected. To be investigated further.

This failed because of the pyatspi caching problem. I just reinstalled
latest at-spi/pyatspi from SVN trunk, and this regression test works
fine.

That accounts for all the the oowriter tests.

Now to track down the oocalc failures.
Comment 31 Rich Burridge 2008-05-08 22:52:12 UTC
Created attachment 110605 [details] [review]
Changes to fixup the oocalc regression tests.

The oocalc regression test results have been adjusted again
to match up with the latest braille context. Patch committed
to SVN trunk.

There is still one lot of remaining failures:

Test 4 of 6 FAILED: ../keystrokes/oocalc/bug_363804.py:Down to A2 - don't speak cell coordinates
DIFFERENCES FOUND:
  BRAILLE LINE:  'soffice Application fruit - OpenOffice.org Calc Frame fruit - OpenOffice.org Calc RootPane ScrollPane Document view3 Sheet Sheet1 Table Good in Pies Cell A2 '
       VISIBLE:  'Good in Pies Cell A2 ', cursor=1
- SPEECH OUTPUT: 'Good in Pies'
+ SPEECH OUTPUT: 'Good in Pies A2'
?                             +++

[FAILURE WAS UNEXPECTED]
Test 5 of 6 FAILED: ../keystrokes/oocalc/bug_363804.py:Right to B2 - don't speak cell coordinates
DIFFERENCES FOUND:
  BRAILLE LINE:  'soffice Application fruit - OpenOffice.org Calc Frame fruit - OpenOffice.org Calc RootPane ScrollPane Document view3 Sheet Sheet1 Table Yes Cell B2 '
       VISIBLE:  'Yes Cell B2 ', cursor=1
- SPEECH OUTPUT: 'Yes'
+ SPEECH OUTPUT: 'Yes B2'
?                    +++

[FAILURE WAS UNEXPECTED]
Test 6 of 6 FAILED: ../keystrokes/oocalc/bug_363804.py:Control+Home to A1 - don't speak cell coordinates
DIFFERENCES FOUND:
  BRAILLE LINE:  'soffice Application fruit - OpenOffice.org Calc Frame fruit - OpenOffice.org Calc RootPane ScrollPane Document view3 Sheet Sheet1 Table Cell A1 '
       VISIBLE:  'Cell A1 ', cursor=1
- SPEECH OUTPUT: 'blank'
?                 ^^^^^

+ SPEECH OUTPUT: ' A1'
?                 ^^^

[FAILURE WAS UNEXPECTED]

----

This suggests that the updating of application specific preferences is 
still not working correctly. At least for this regression test.
I'll investigate further tomorrow.
Comment 32 Rich Burridge 2008-05-09 17:11:32 UTC
W.r.t. the problem in the last comment, see:
http://bugzilla.gnome.org/show_bug.cgi?id=528147#c20
Comment 33 Mike Pedersen 2008-05-12 18:38:38 UTC
This seems to be working nicely in many areas.  I'm still trying to figure out why I'm getting some bogus unselected messages in lists and comboboxes though.  It seems to happen once in a while if I'm arrowing up and down in really large ones.  
Comment 34 Rich Burridge 2008-05-15 22:19:34 UTC
> I'm still trying to figure out
> why I'm getting some bogus unselected messages in lists and comboboxes though. 
> It seems to happen once in a while if I'm arrowing up and down in really large
> ones.  

Which application are you using? Steps to try to reproduce this would be very useful.

Thanks.

Comment 35 Mike Pedersen 2008-05-15 22:23:03 UTC
It only seems to happen once in a while in naudilus if I am attempting to select multiple files in a folder with several hundred files.  
I had reason to use this patch today with lots of different blocks of text and it seems to be working quite nicely.  
Comment 36 Mike Pedersen 2008-05-20 16:58:45 UTC
This one seems to be working well I think.  
Comment 37 Rich Burridge 2008-05-20 17:14:28 UTC
Thanks Mike. The latest patch to this one was already committed,
so I'm closing as FIXED. If there is anything else that needs to be
tweaked w.r.t. selection, then it can be done as part of bug #517048.