? 356186.patch
? INSTALL
? Makefile
? Makefile.in
? aclocal.m4
? autom4te.cache
? config.log
? config.status
? configure
? install-sh
? lsr.desktop
? lsr.spec
? missing
? mkinstalldirs
? omf.make
? py-compile
? xmldocs.make
? doc/Makefile
? doc/Makefile.in
? doc/man/Makefile
? doc/man/Makefile.in
? doc/ui/Makefile
? doc/ui/Makefile.in
? doc/workbook/Makefile
? doc/workbook/Makefile.in
? src/AEConstants/Makefile
? src/AEConstants/Makefile.in
? src/AEConstants/Platform.py
Index: src/Adapters/ATSPI/ComboboxAdapter.py
===================================================================
RCS file: /cvs/gnome/lsr/src/Adapters/ATSPI/ComboboxAdapter.py,v
retrieving revision 1.6
diff -r1.6 ComboboxAdapter.py
23a24
> from DefaultNav import *
205c206,377
<                         focused=focused, **kwargs),)
\ No newline at end of file
---
>                         focused=focused, **kwargs),)
>                                          
>                     
> class ComboBoxNavAdapter(DefaultNavAdapter):
>   '''
>   Overrides L{DefaultNavAdapter} to provide navigation over text lines as 
>   items and to avoid traversing text children as separate accessible children 
>   in the L{IAccessibleNav} interface. 
>   
>   Adapts accessibles that have a role of terminal or have a state of multiline, 
>   single line, or editable and provide the L{Interfaces.IText} interface. 
>   Does not adapt L{POR} accessibles with role of page tab.
>   '''
>   provides = [IItemNav, IAccessibleNav]
> 
>   @staticmethod
>   def when(subject):
>     '''
>     Tests if the given subject can be adapted by this class.
>     
>     @param subject: Accessible to test
>     @type subject: L{pyLinAcc.Accessible}
>     @return: True when the subject meets the condition named in the docstring
>     for this class, False otherwise
>     @rtype: boolean
>     '''   
>     acc = subject.accessible
>     r = acc.getRole()
>     pr = acc.parent.getRole()
>     c = Constants
>     roles = (c.ROLE_COMBO_BOX, c.ROLE_EDITBAR, c.ROLE_AUTOCOMPLETE)
>     return (r in roles or pr in roles)
>   
>   def getNextAcc(self):
>     '''
>     Gets the next accessible relative to the one providing this interface.
>     
>     @return: Point of regard to the next accessible
>     @rtype: L{POR}
>     @raise IndexError: When there is no next accessible
>     @raise LookupError: When lookup for the next accessible fails even though
>       it may exist
>     '''
>     if self.accessible.getRole() == Constants.ROLE_COMBO_BOX:
>       cb = self.accessible
>     else: 
>       cb = self.accessible.parent
>       
>     i = cb.getIndexInParent()
>     has_parent = cb.parent is not None
>     if i < 0 or not has_parent:
>       # indicate lookup of the next peer failed
>       raise LookupError
>     # get the accessible at the next index (the peer)
>     child = cb.parent.getChildAtIndex(i+1)
>     if child is None:
>       # indicate there is no next peer
>       raise IndexError
>     return POR(child, None, 0)
>     
>   def getPrevAcc(self):
>     '''
>     Gets the previous accessible relative to the one providing this interface.
>     
>     @return: Point of regard to the previous accessible
>     @rtype: L{POR}
>     @raise IndexError: When there is no previous accessible
>     @raise LookupError: When lookup for the previous accessible fails even 
>       though it may exist
>     '''
>     if self.accessible.getRole() == Constants.ROLE_COMBO_BOX:
>       cb = self.accessible
>     else: 
>       cb = self.accessible.parent
>     
>     i = cb.getIndexInParent()
>     has_parent = cb.parent is not None
>     if i <= 0 or not has_parent:
>       # indicate lookup of the previous peer failed
>       raise LookupError
>     # get the accessible at the previous index (the peer)
>     child = cb.parent.getChildAtIndex(i-1)
>     if child is None:
>       # indicate there is no previous peer
>       raise IndexError
>     return POR(child, None, 0)
>     
>   def getParentAcc(self):
>     '''
>     Gets the parent accessible relative to the one providing this interface.
>     
>     @return: Point of regard to the parent accessible
>     @rtype: L{POR}
>     @raise LookupError: When lookup for the parent accessible fails because it
>       does not exist
>     '''
>     if self.accessible.getRole() == Constants.ROLE_COMBO_BOX:
>       cb = self.accessible
>     else: # probably textbox
>       cb = self.accessible.parent
>       
>     parent = cb.parent
>     if parent is None:
>       raise LookupError
>     return POR(parent, None, 0)
>     
>   def getFirstAccChild(self):
>     '''
>     Gets the first accessible child in the combobox list.
>     
>     @return: Point of regard to the first list item
>     @rtype: L{POR}
>     @raise LookupError: When lookup for child fails because it does not exist
>     '''
>     if self.accessible.getRole() == Constants.ROLE_COMBO_BOX:
>       cb = self.accessible
>     else: # probably textbox
>       cb = self.accessible.parent
>       
>     # find head of list based on known parent roles
>     listhead = self._findListHead(cb)
>     if listhead is None:
>       raise LookupError
>     
>     return POR(listhead, None, 0)
>     
>   def getLastAccChild(self):
>     '''
>     Gets the last accessible child in combobox list.
>     
>     @return: Point of regard to the last child accessible
>     @rtype: L{POR}
>     @raise LookupError: When lookup for child fails because it does not exist
>     '''
>     if self.accessible.getRole() == Constants.ROLE_COMBO_BOX:
>       cb = self.accessible
>     else: # probably textbox
>       cb = self.accessible.parent
>       
>     listhead = self._findListHead(cb)
>     if listhead is None:
>       raise LookupError
>     
>     child = listhead.parent.getChildAtIndex(listhead.parent.childCount-1)
>     if child is None:
>       raise LookupError
>     return POR(child, None, 0)
>     
>   def _findListHead(self, cb):
>     '''
>     Performs a depth only search to find the first list item in a
>     combobox list.  Could be of type menu item or list item.  
>     
>     @return: Point of regard to the first child accessible
>     @rtype: L{POR}
>     @raise LookupError: When lookup for child fails because it does not exist
>     '''
>     listhead = None
>     c = cb.getChildAtIndex(0)
>     while c is not None:
>       c_role = c.getRoleName()
>       if c_role == 'menu' or c_role == 'list':
>         if c.childCount > 0:
>           listhead = c.getChildAtIndex(0)
>         else:
>           listhead = cb
>         break
>       c = c.getChildAtIndex(0)
>     return listhead
>   
>   
>     
\ No newline at end of file
Index: src/Adapters/ATSPI/__init__.py
===================================================================
RCS file: /cvs/gnome/lsr/src/Adapters/ATSPI/__init__.py,v
retrieving revision 1.12
diff -r1.12 __init__.py
53a54
>                            ComboBoxNavAdapter,
Index: src/Devices/BrlAPIDevice.py
===================================================================
RCS file: /cvs/gnome/lsr/src/Devices/BrlAPIDevice.py,v
retrieving revision 1.6
diff -r1.6 BrlAPIDevice.py
149c149
<       self.writestruct = brlapi.Write()
---
>       self.writestruct = brlapi.WriteStruct()
Index: src/Perks/BasicBraillePerk.py
===================================================================
RCS file: /cvs/gnome/lsr/src/Perks/BasicBraillePerk.py,v
retrieving revision 1.10
diff -r1.10 BasicBraillePerk.py
152,160c152,163
<     brlindev = self.getInputDevice(None, 'braille')
<     self.unregisterCommand(brlindev, [brlindev.KEY_CMD_FWINLT])
<     self.unregisterCommand(brlindev, [brlindev.KEY_CMD_FWINRT])
<     self.unregisterCommand(brlindev, [brlindev.KEY_CMD_FWINRTSKIP])
<     self.unregisterCommand(brlindev, [brlindev.KEY_CMD_FWINLTSKIP])
<     self.unregisterCommand(brlindev, [brlindev.KEY_CMD_ROUTE])
<     self.unregisterCommand(brlindev, [brlindev.KEY_CMD_HOME])
<     self.unregisterCommand(brlindev, [brlindev.KEY_CMD_LNBEG])
<     self.unregisterCommand(brlindev, [brlindev.KEY_CMD_LNEND])
---
>     try:
>       brlindev = self.getInputDevice(None, 'braille')
>       self.unregisterCommand(brlindev, [brlindev.KEY_CMD_FWINLT])
>       self.unregisterCommand(brlindev, [brlindev.KEY_CMD_FWINRT])
>       self.unregisterCommand(brlindev, [brlindev.KEY_CMD_FWINRTSKIP])
>       self.unregisterCommand(brlindev, [brlindev.KEY_CMD_FWINLTSKIP])
>       self.unregisterCommand(brlindev, [brlindev.KEY_CMD_ROUTE])
>       self.unregisterCommand(brlindev, [brlindev.KEY_CMD_HOME])
>       self.unregisterCommand(brlindev, [brlindev.KEY_CMD_LNBEG])
>       self.unregisterCommand(brlindev, [brlindev.KEY_CMD_LNEND])
>     except InvalidDeviceError:
>       pass
