Show
Ignore:
Timestamp:
10/08/08 02:34:35 (3 months ago)
Author:
bzr
Message:

virtual buffers:

  • Override the CursorManager?'s selection property (_set_selection method) to perform tasks required when the caret moves, rather than calling _caretMovedToField() from _caretMovementScriptHelper(). This simplifies the code to update the caret and allows any code that works with CursorManagers? to use virtual buffers properly without special treatment. Additionally, it means that more of the logic is in the base virtual buffer.
  • _set_selection() handles scrolling to the object using the new scrollIntoView() method on NVDAObjects.
  • _set_selection() sets the review position, not just the navigator object. This means that the review position will follow the virtual buffer cursor within objects.
  • A new method, _shouldSetFocusToObj(), is used by _set_selection() to determine whether the object should receive focus.
Location:
trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk

    • Property bzr:revision-info
      •  

        old new  
        1 timestamp: 2008-10-06 19:20:03.456000090 +1000 
         1timestamp: 2008-10-08 06:56:10.128000021 +1000 
        22committer: James Teh <jamie@jantrid.net> 
        33properties:  
    • Property bzr:revision-id:v3-list-QlpoOTFBWSZTWbrL2vUAAB1VgAAQABCAQDrrnqAgAFCgaaGRkxBoTIJ6mmaNRwhndFAoNhZjh_YY4a01fOg1ulgNNC2UrzPdXXEnDpX8XckU4UJC6y9r1A..
      •  

        old new  
        1961962213 jamie@jantrid.net-20081006050758-8oez6b1vk34njebl 
        1971972214 jamie@jantrid.net-20081006092003-vmgctsl79vtejen3 
         1982217 jamie@jantrid.net-20081007205610-6oo6sj77usytyqvj 
    • Property bzr:file-ids
      •  

        old new  
        1 source/NVDAObjects/IAccessible/__init__.py      683@dbe06fc7-9119-0410-a01d-9dbf589ecbba:trunk:source%2FNVDAObjects%2FIAccessible%2F__init__.py 
        2 source/NVDAObjects/__init__.py  683@dbe06fc7-9119-0410-a01d-9dbf589ecbba:trunk:source%2FNVDAObjects%2F__init__.py 
         1source/virtualBuffers/__init__.py       1675@dbe06fc7-9119-0410-a01d-9dbf589ecbba:trunk:source%2FvirtualBuffers%2F__init__.py 
         2source/virtualBuffers/gecko_ia2.py      1694@dbe06fc7-9119-0410-a01d-9dbf589ecbba:trunk:source%2FvirtualBuffers%2Fgecko_ia2.py 
  • trunk/source/virtualBuffers/gecko_ia2.py

    r2381 r2418  
    143143                                        nextHandler() 
    144144                                newInfo.collapse() 
    145                                 newInfo.updateCaret() 
     145                                self.selection=newInfo 
    146146                else: 
    147147                        # The virtual buffer caret was already at the focused node, so we don't speak it. 
     
    155155                        obj.initAutoSelectDetection() 
    156156 
    157         def _caretMovedToField(self,docHandle,ID): 
    158                 try: 
    159                         pacc,accChildID=IAccessibleHandler.accessibleObjectFromEvent(docHandle,IAccessibleHandler.OBJID_CLIENT,ID) 
    160                         if not (pacc==self.rootNVDAObject.IAccessibleObject and accChildID==self.rootNVDAObject.IAccessibleChildID): 
    161                                 obj=NVDAObjects.IAccessible.IAccessible(IAccessibleObject=pacc,IAccessibleChildID=accChildID) 
    162                                 api.setNavigatorObject(obj) 
    163                                 obj.IAccessibleObject.scrollTo(GECKO_SCROLL_TYPE_ANYWHERE) 
    164                                 if not eventHandler.isPendingEvents('gainFocus') and controlTypes.STATE_FOCUSABLE in obj.states and obj.role!=controlTypes.ROLE_EMBEDDEDOBJECT: 
    165                                         obj.setFocus() 
    166                 except: 
    167                         pass 
     157        def _shouldSetFocusToObj(self, obj): 
     158                return controlTypes.STATE_FOCUSABLE in obj.states and obj.role!=controlTypes.ROLE_EMBEDDEDOBJECT 
    168159 
    169160        def _activateField(self,docHandle,ID): 
     
    277268                                speech.speakTextInfo(newInfo,reason=speech.REASON_FOCUS) 
    278269                                newInfo.collapse() 
    279                                 newInfo.updateCaret() 
     270                                self.selection=newInfo 
    280271 
    281272        def _tabOverride(self, direction): 
     
    331322                speech.speakTextInfo(newInfo,reason=speech.REASON_FOCUS) 
    332323                newInfo.collapse() 
    333                 newInfo.updateCaret() 
    334                 self._caretMovedToField(newDocHandle, newID) 
     324                self.selection=newInfo 
    335325                return True 
    336326