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



Author: wwalker
Date: Mon Jul 21 17:53:36 2008
New Revision: 4055
URL: http://svn.gnome.org/viewvc/orca?rev=4055&view=rev

Log:
More work on bug #542714 - Orca should indicate read-only text boxes.


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

Modified: trunk/src/orca/scripts/toolkits/Gecko/braille_generator.py
==============================================================================
--- trunk/src/orca/scripts/toolkits/Gecko/braille_generator.py	(original)
+++ trunk/src/orca/scripts/toolkits/Gecko/braille_generator.py	Mon Jul 21 17:53:36 2008
@@ -248,6 +248,12 @@
 
         textRegion = braille.Text(obj, label, settings.brailleEOLIndicator)
         regions.append(textRegion)
+
+        if settings.presentReadOnlyText \
+           and not obj.getState().contains(pyatspi.STATE_EDITABLE):
+            regions.append(braille.Region(" " \
+                                          + settings.brailleReadOnlyString))
+
         return [regions, textRegion]
 
     def _getBrailleRegionsForComboBox(self, obj):

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	Mon Jul 21 17:53:36 2008
@@ -33,6 +33,7 @@
 import pyatspi
 
 import orca.rolenames as rolenames
+import orca.settings as settings
 import orca.speechgenerator as speechgenerator
 
 from orca.orca_i18n import _
@@ -142,6 +143,10 @@
             return speechgenerator.SpeechGenerator._getSpeechForText(
                 self, obj, already_focused)
 
+        if settings.presentReadOnlyText \
+           and not obj.getState().contains(pyatspi.STATE_EDITABLE):
+            utterances.append(settings.speechReadOnlyString)
+
         utterances.extend(self.getSpeechForObjectRole(obj))
 
         [text, caretOffset, startOffset] = self._script.getTextLineAtCaret(obj)

Modified: trunk/src/orca/where_am_I.py
==============================================================================
--- trunk/src/orca/where_am_I.py	(original)
+++ trunk/src/orca/where_am_I.py	Mon Jul 21 17:53:36 2008
@@ -118,7 +118,8 @@
         elif role == pyatspi.ROLE_PAGE_TAB:
             self._speakPageTab(obj, basicOnly)
 
-        elif role in [pyatspi.ROLE_TEXT,
+        elif role in [pyatspi.ROLE_ENTRY,
+                      pyatspi.ROLE_TEXT,
                       pyatspi.ROLE_TERMINAL]:
             self._speakText(obj, basicOnly)
 
@@ -484,8 +485,16 @@
         cell = self._script.getAncestor(obj,
                                         [pyatspi.ROLE_TABLE_CELL],
                                         [pyatspi.ROLE_FRAME])
-        if cell:
-            return self._speakTableCell(cell, basicOnly)
+        if cell and not self._script.isLayoutOnly(cell.parent):
+            # [[[TODO: WDW - we handle ROLE_ENTRY specially here because
+            # there is a bug in getRealActiveDescendant: it doesn't dive
+            # deep enough into the hierarchy (see comment #12 of bug
+            # #542714).  So, we'll do this nasty hack until we can feel
+            # more comfortable with mucking around with
+            # getRealActiveDescendant.]]]
+            #
+            if obj.getRole() != pyatspi.ROLE_ENTRY:
+                return self._speakTableCell(cell, basicOnly)
 
         utterances = []
         text = self._getObjLabel(obj)



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