GNOME Bugzilla – Bug 476639
Remove requirement of annotating accessible objects
Last modified: 2007-10-30 17:20:23 UTC
Today Orca annotates accessible objects to preserve states across several modules. For example, the default script writes to "lastColumn" and "lastRow" attributes to allow generators to determine if the should read an entire table row or just the given cell. This is problematic for several reasons: 1. It depends on a specific accessible caching policy. 2. It requires accessible objects to be writable, so this won't work well with CORBA stub objects, just with wrapper objects.
Created attachment 95532 [details] [review] Proposed changes This patch adds a dictionary to Script instances called pointOfReference. The dictionary is used for storing contextual info, like lastRow or lastCursorPosition. It is reset in locusOfFocusChanged().
(In reply to comment #1) > Created an attachment (id=95532) [edit] > Proposed changes > > This patch adds a dictionary to Script instances called pointOfReference. The > dictionary is used for storing contextual info, like lastRow or > lastCursorPosition. It is reset in locusOfFocusChanged(). > Very strange looking patch. :-)
Created attachment 95534 [details] [review] Proposed changes Removed a print, and fixed an exception when the new LOF is None.
Created attachment 95550 [details] [review] Proposed changes Changes from Rich's input.
I've just checked in a macaroon test that should help check to see if this is working for OOo Calc dynamic row and column headers. % cd .../orca/test/harness % mkdir -p stupid/directory % cd stupid/directory/ % ../../runone.sh ../../../keystrokes/oocalc/bug_361167.py oocalc 0
Ok, I comimtted the patch to trunk. Fingers crossed.
I just found an additional attribute that is annotated: "activeDescendantInfo". A patch is on it's way...
Created attachment 97040 [details] [review] Further fixes I have tested this. I'll be committing it.
I am reopening this unit we make sure acessible object annotation is dead for sure.
Ok, So Gecko.py has the following annotations: obj.unicodeText obj.childrenIndices obj.characterOffsetInParent
Another annotation in default.py(onValueChanged): obj.oldValue
Can this be closed now (i.e., have we caught/handled all the annotations we used to have)?
I think it's safe to close for now.