[orca/gnome-3-16] Update position in Gecko content when SayAll is interrupted
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca/gnome-3-16] Update position in Gecko content when SayAll is interrupted
- Date: Sun, 8 Mar 2015 18:20:21 +0000 (UTC)
commit 0ee77ef2d2500d5ed54598c7a43c2e2feaef1c54
Author: Joanmarie Diggs <jdiggs igalia com>
Date: Sun Mar 8 14:16:33 2015 -0400
Update position in Gecko content when SayAll is interrupted
src/orca/scripts/toolkits/Gecko/script.py | 11 +++++++----
.../scripts/toolkits/Gecko/script_utilities.py | 12 ++++++++++--
2 files changed, 17 insertions(+), 6 deletions(-)
---
diff --git a/src/orca/scripts/toolkits/Gecko/script.py b/src/orca/scripts/toolkits/Gecko/script.py
index de15891..e52e5a4 100644
--- a/src/orca/scripts/toolkits/Gecko/script.py
+++ b/src/orca/scripts/toolkits/Gecko/script.py
@@ -876,7 +876,7 @@ class Script(default.Script):
return True
def __sayAllProgressCallback(self, context, progressType):
- if not self.inDocumentContent():
+ if not self.inDocumentContent() or self._inFocusMode:
default.Script.__sayAllProgressCallback(self, context, progressType)
return
@@ -888,14 +888,17 @@ class Script(default.Script):
return
elif lastKey == "Up" and self._rewindSayAll(context):
return
+ elif not self._lastCommandWasStructNav:
+ self.setCaretPosition(context.obj, context.currentOffset)
+ self.updateBraille(context.obj)
self._inSayAll = False
self._sayAllContents = []
self._sayAllContexts = []
+ return
- if not self._lastCommandWasStructNav:
- orca.setLocusOfFocus(None, context.obj, notifyScript=False)
- self.setCaretContext(context.obj, context.currentOffset)
+ orca.setLocusOfFocus(None, context.obj, notifyScript=False)
+ self.setCaretContext(context.obj, context.currentOffset)
def onCaretMoved(self, event):
"""Callback for object:text-caret-moved accessibility events."""
diff --git a/src/orca/scripts/toolkits/Gecko/script_utilities.py
b/src/orca/scripts/toolkits/Gecko/script_utilities.py
index 22a4538..9d3e4dd 100644
--- a/src/orca/scripts/toolkits/Gecko/script_utilities.py
+++ b/src/orca/scripts/toolkits/Gecko/script_utilities.py
@@ -585,7 +585,11 @@ class Utilities(script_utilities.Utilities):
treatAsWhole = self._treatTextObjectAsWhole(obj)
if not treatAsWhole and boundary == pyatspi.TEXT_BOUNDARY_SENTENCE_START:
- if obj.getRole() in [pyatspi.ROLE_LIST_ITEM, pyatspi.ROLE_HEADING] \
+ state = obj.getState()
+ if state.contains(pyatspi.STATE_EDITABLE) \
+ and state.contains(pyatspi.STATE_FOCUSED):
+ treatAsWhole = False
+ elif obj.getRole() in [pyatspi.ROLE_LIST_ITEM, pyatspi.ROLE_HEADING] \
or not self.isTextBlockElement(obj):
treatAsWhole = True
@@ -677,6 +681,10 @@ class Utilities(script_utilities.Utilities):
boundary = pyatspi.TEXT_BOUNDARY_SENTENCE_START
objects = self._getContentsForObj(obj, offset, boundary)
+ state = obj.getState()
+ if state.contains(pyatspi.STATE_EDITABLE) \
+ and state.contains(pyatspi.STATE_FOCUSED):
+ return objects
def _treatAsSentenceEnd(x):
xObj, xStart, xEnd, xString = x
@@ -862,7 +870,7 @@ class Utilities(script_utilities.Utilities):
def justEnteredObject(self, obj, startOffset, endOffset):
lastKey, mods = self.lastKeyAndModifiers()
- if lastKey == "Down" and not mods:
+ if (lastKey == "Down" and not mods) or self._script.inSayAll():
return startOffset == 0
if lastKey == "Up" and not mods:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]