[orca/gnome-3-14] Implement initial support for "layout" mode and "object" mode for Gecko content



commit 9e88dce5378d7107740143d39857a8b1bd837b12
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Thu Sep 11 20:45:31 2014 -0400

    Implement initial support for "layout" mode and "object" mode for Gecko content
    
    Note that this commit merely gets it working. Configuration and toggling of
    this feature will be done in subsequent commits. In the meantime, to enable
    the Windows-screen-reader-style object navigation you can put the following
    lines into your orca-customizations.py:
    
    import orca.settings
    orca.settings.layoutMode = False

 src/orca/scripts/toolkits/Gecko/script.py          |    3 ++-
 .../scripts/toolkits/Gecko/script_utilities.py     |    4 +++-
 src/orca/settings.py                               |    3 +++
 3 files changed, 8 insertions(+), 2 deletions(-)
---
diff --git a/src/orca/scripts/toolkits/Gecko/script.py b/src/orca/scripts/toolkits/Gecko/script.py
index 4fc97d3..6054c14 100644
--- a/src/orca/scripts/toolkits/Gecko/script.py
+++ b/src/orca/scripts/toolkits/Gecko/script.py
@@ -2462,7 +2462,8 @@ class Script(default.Script):
             return []
 
         if self.utilities.findObjectInContents(obj, offset, self.currentLineContents) == -1:
-            self.currentLineContents = self.utilities.getLineContentsAtOffset(obj, offset)
+            self.currentLineContents = self.utilities.getLineContentsAtOffset(
+                obj, offset, _settingsManager.getSetting('layoutMode'))
 
         return self.currentLineContents
 
diff --git a/src/orca/scripts/toolkits/Gecko/script_utilities.py 
b/src/orca/scripts/toolkits/Gecko/script_utilities.py
index f2a3ac9..2ef1f20 100644
--- a/src/orca/scripts/toolkits/Gecko/script_utilities.py
+++ b/src/orca/scripts/toolkits/Gecko/script_utilities.py
@@ -712,7 +712,7 @@ class Utilities(script_utilities.Utilities):
 
         return False
 
-    def getLineContentsAtOffset(self, obj, offset):
+    def getLineContentsAtOffset(self, obj, offset, layoutMode=True):
         if not obj:
             return []
 
@@ -732,6 +732,8 @@ class Utilities(script_utilities.Utilities):
 
         boundary = pyatspi.TEXT_BOUNDARY_LINE_START
         objects = self._getContentsForObj(obj, offset, boundary)
+        if not layoutMode:
+            return objects
 
         # Check for things on the same line to the left of this object.
         firstObj, firstStart = objects[0][0], objects[0][1]
diff --git a/src/orca/settings.py b/src/orca/settings.py
index d07e422..ddee58b 100644
--- a/src/orca/settings.py
+++ b/src/orca/settings.py
@@ -113,6 +113,7 @@ userCustomizableSettings = [
     "findResultsMinimumLength",
     "structNavTriggersFocusMode",
     "caretNavTriggersFocusMode",
+    "layoutMode",
 ]
 
 GENERAL_KEYBOARD_LAYOUT_DESKTOP = 1
@@ -361,3 +362,5 @@ timeoutCallback         = None # Set by orca.py:init to orca.timeout
 
 structNavTriggersFocusMode = False
 caretNavTriggersFocusMode = False
+
+layoutMode = True


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