orca r4166 - in trunk: . src/orca src/orca/scripts/toolkits/Gecko



Author: joanied
Date: Sun Sep  7 05:04:53 2008
New Revision: 4166
URL: http://svn.gnome.org/viewvc/orca?rev=4166&view=rev

Log:
* src/orca/scripts/toolkits/Gecko/speech_generator.py:
  src/orca/scripts/toolkits/Gecko/where_am_i.py:
  src/orca/where_am_I.py:
  Bit more work on the fix for bug #515923 - 'Area' labels of Calc
  Headers/Footers dialog not always announced.



Modified:
   trunk/ChangeLog
   trunk/src/orca/scripts/toolkits/Gecko/speech_generator.py
   trunk/src/orca/scripts/toolkits/Gecko/where_am_i.py
   trunk/src/orca/where_am_I.py

Modified: trunk/src/orca/scripts/toolkits/Gecko/speech_generator.py
==============================================================================
--- trunk/src/orca/scripts/toolkits/Gecko/speech_generator.py	(original)
+++ trunk/src/orca/scripts/toolkits/Gecko/speech_generator.py	Sun Sep  7 05:04:53 2008
@@ -79,7 +79,7 @@
                 doNotSpeak.append(pyatspi.ROLE_LIST)
 
         utterances = []
-        if not obj.getRole() in doNotSpeak:
+        if role or not obj.getRole() in doNotSpeak:
             utterances.append(rolenames.getSpeechForRoleName(obj, role))
             if obj.getRole() == pyatspi.ROLE_HEADING:
                 level = self._script.getHeadingLevel(obj)

Modified: trunk/src/orca/scripts/toolkits/Gecko/where_am_i.py
==============================================================================
--- trunk/src/orca/scripts/toolkits/Gecko/where_am_i.py	(original)
+++ trunk/src/orca/scripts/toolkits/Gecko/where_am_i.py	Sun Sep  7 05:04:53 2008
@@ -83,6 +83,26 @@
                 and not self._script.isAriaWidget(orca_state.locusOfFocus)):
             where_am_I.WhereAmI._speakDefaultButton(self, obj)
 
+    def _getSpeechForRoleName(self, obj, role=None):
+        """Returns the rolename to be spoken for the object. Overridden
+        here because there are times when we do not want the speech
+        generator returning a role to speak (e.g. navigating within
+        a document), but other times when we would (e.g. during a 
+        whereAmI).
+        """
+
+        objRole = obj.getRole()
+        if not role and objRole in [pyatspi.ROLE_DOCUMENT_FRAME,
+                                    pyatspi.ROLE_FORM,
+                                    pyatspi.ROLE_LIST_ITEM,
+                                    pyatspi.ROLE_LIST,
+                                    pyatspi.ROLE_PARAGRAPH,
+                                    pyatspi.ROLE_SECTION,
+                                    pyatspi.ROLE_TABLE_CELL]:
+            role = objRole
+
+        return where_am_I.WhereAmI._getSpeechForRoleName(self, obj, role)
+
     def _speakObjDescription(self, obj):
         """Speaks the object's description if it is not the same as the
         object's name or label. Overridden here because Gecko tacks on

Modified: trunk/src/orca/where_am_I.py
==============================================================================
--- trunk/src/orca/where_am_I.py	(original)
+++ trunk/src/orca/where_am_I.py	Sun Sep  7 05:04:53 2008
@@ -1147,8 +1147,11 @@
         """Returns the rolename to be spoken for the object.
         """
 
-        return self._script.speechGenerator.\
-            getSpeechForObjectRole(obj, role)[0]
+        try:
+            return self._script.speechGenerator.\
+                getSpeechForObjectRole(obj, role)[0]
+        except:
+            return ""
 
     def _getGroupLabel(self, obj):
         """Returns the label for a group of components.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]