[orca] Handle exception resulting from text object going dead on us
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca] Handle exception resulting from text object going dead on us
- Date: Sat, 27 Feb 2021 12:56:27 +0000 (UTC)
commit b268907a752199b03ad5fd5e20ddb2e88bd0d4f7
Author: Joanmarie Diggs <jdiggs igalia com>
Date: Sat Feb 27 13:55:36 2021 +0100
Handle exception resulting from text object going dead on us
src/orca/scripts/default.py | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
---
diff --git a/src/orca/scripts/default.py b/src/orca/scripts/default.py
index 37abac603..867a65cbe 100644
--- a/src/orca/scripts/default.py
+++ b/src/orca/scripts/default.py
@@ -3744,12 +3744,18 @@ class Script(script.Script):
try:
text = obj.queryText()
+ offset = text.caretOffset
+ characterCount = text.characterCount
except NotImplementedError:
return ["", 0, 0]
+ except:
+ msg = "DEFAULT: Exception getting offset and length for %s" % obj
+ debug.println(debug.LEVEL_INFO, msg, True)
+ return ["", 0, 0]
targetOffset = startOffset
if targetOffset is None:
- targetOffset = max(0, text.caretOffset)
+ targetOffset = max(0, offset)
# The offset might be positioned at the very end of the text area.
# In these cases, calling text.getTextAtOffset on an offset that's
@@ -3765,14 +3771,14 @@ class Script(script.Script):
# to see if that character is a newline - if it is, we'll treat it
# as the line.
#
- if targetOffset == text.characterCount:
+ if targetOffset == characterCount:
fixedTargetOffset = max(0, targetOffset - 1)
character = text.getText(fixedTargetOffset, fixedTargetOffset + 1)
else:
fixedTargetOffset = targetOffset
character = None
- if (targetOffset == text.characterCount) \
+ if (targetOffset == characterCount) \
and (character == "\n"):
lineString = ""
startOffset = fixedTargetOffset
@@ -3782,12 +3788,12 @@ class Script(script.Script):
# do this because Gecko's implementation of getTextAtOffset
# is broken if there is just one character in the string.]]]
#
- if (text.characterCount == 1):
+ if (characterCount == 1):
lineString = text.getText(fixedTargetOffset, fixedTargetOffset + 1)
startOffset = fixedTargetOffset
else:
if fixedTargetOffset == -1:
- fixedTargetOffset = text.characterCount
+ fixedTargetOffset = characterCount
try:
[lineString, startOffset, endOffset] = text.getTextAtOffset(
fixedTargetOffset, pyatspi.TEXT_BOUNDARY_LINE_START)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]