[orca] Prevent Orca from combining words into a single word in web content



commit 9e2e6bdd1a894060206b2588959cd871181cdd2b
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Mon Mar 16 11:45:00 2020 -0400

    Prevent Orca from combining words into a single word in web content

 src/orca/caret_navigation.py             | 2 +-
 src/orca/scripts/web/script.py           | 4 ++--
 src/orca/scripts/web/script_utilities.py | 5 ++++-
 3 files changed, 7 insertions(+), 4 deletions(-)
---
diff --git a/src/orca/caret_navigation.py b/src/orca/caret_navigation.py
index ad6b829f6..278f61ec6 100644
--- a/src/orca/caret_navigation.py
+++ b/src/orca/caret_navigation.py
@@ -282,7 +282,7 @@ class CaretNavigation:
             return False
 
         obj, end, string = contents[-1][0], contents[-1][2], contents[-1][3]
-        if string and not string[-1].isalnum():
+        if string and string[-1].isspace():
             end -= 1
 
         script.utilities.setCaretPosition(obj, end)
diff --git a/src/orca/scripts/web/script.py b/src/orca/scripts/web/script.py
index 287a876e2..e6c9707fc 100644
--- a/src/orca/scripts/web/script.py
+++ b/src/orca/scripts/web/script.py
@@ -871,8 +871,8 @@ class Script(default.Script):
             return
 
         obj, offset = self.utilities.getCaretContext(documentFrame=None)
-        text = self.utilities.queryNonEmptyText(obj)
-        if text and offset == text.characterCount:
+        keyString, mods = self.utilities.lastKeyAndModifiers()
+        if keyString == "Right":
             offset -= 1
 
         wordContents = self.utilities.getWordContentsAtOffset(obj, offset)
diff --git a/src/orca/scripts/web/script_utilities.py b/src/orca/scripts/web/script_utilities.py
index e9e15671f..bb513b6a9 100644
--- a/src/orca/scripts/web/script_utilities.py
+++ b/src/orca/scripts/web/script_utilities.py
@@ -1424,7 +1424,7 @@ class Utilities(script_utilities.Utilities):
         # Check for things in the same word to the left of this object.
         firstObj, firstStart, firstEnd, firstString = objects[0]
         prevObj, pOffset = self.findPreviousCaretInOrder(firstObj, firstStart)
-        while prevObj and firstString:
+        while prevObj and firstString and prevObj != firstObj:
             text = self.queryNonEmptyText(prevObj)
             if not text or text.getText(pOffset, pOffset + 1).isspace():
                 break
@@ -1445,6 +1445,9 @@ class Utilities(script_utilities.Utilities):
         lastObj, lastStart, lastEnd, lastString = objects[-1]
         while lastObj and lastString and not lastString[-1].isspace():
             nextObj, nOffset = self.findNextCaretInOrder(lastObj, lastEnd - 1)
+            if nextObj == lastObj:
+                break
+
             onRight = self._getContentsForObj(nextObj, nOffset, boundary)
             if onRight and self._contentIsSubsetOf(objects[0], onRight[-1]):
                 onRight = onRight[0:-1]


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