[orca] Web: More work on recovering from focused object being destroyed
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca] Web: More work on recovering from focused object being destroyed
- Date: Fri, 26 Feb 2021 13:19:30 +0000 (UTC)
commit 75a34cef5b023b52fdc551e674289009cd292f29
Author: Joanmarie Diggs <jdiggs igalia com>
Date: Fri Feb 26 14:17:38 2021 +0100
Web: More work on recovering from focused object being destroyed
* Preserve context when dumping cache children-changed:add
* Dump cache (but preserve context) in children-changed:removed
* Search for caret context in parent when line nav isn't being used
src/orca/scripts/web/script.py | 6 +++++-
src/orca/scripts/web/script_utilities.py | 7 ++++++-
2 files changed, 11 insertions(+), 2 deletions(-)
---
diff --git a/src/orca/scripts/web/script.py b/src/orca/scripts/web/script.py
index 9d902d8f8..e8fa9e58c 100644
--- a/src/orca/scripts/web/script.py
+++ b/src/orca/scripts/web/script.py
@@ -1735,7 +1735,7 @@ class Script(default.Script):
elif self.utilities.isDead(orca_state.locusOfFocus):
msg = "WEB: Dumping cache and context: dead focus %s" % orca_state.locusOfFocus
debug.println(debug.LEVEL_INFO, msg, True)
- self.utilities.dumpCache(document, preserveContext=False)
+ self.utilities.dumpCache(document, preserveContext=True)
elif pyatspi.findAncestor(orca_state.locusOfFocus, lambda x: x == event.source):
msg = "WEB: Dumping cache: source is ancestor of focus %s" % orca_state.locusOfFocus
debug.println(debug.LEVEL_INFO, msg, True)
@@ -1844,6 +1844,10 @@ class Script(default.Script):
msg = "WEB: Dumping cache and context: source is focus %s" % orca_state.locusOfFocus
debug.println(debug.LEVEL_INFO, msg, True)
self.utilities.dumpCache(document, preserveContext=False)
+ elif self.utilities.isDead(orca_state.locusOfFocus):
+ msg = "WEB: Dumping cache and context: dead focus %s" % orca_state.locusOfFocus
+ debug.println(debug.LEVEL_INFO, msg, True)
+ self.utilities.dumpCache(document, preserveContext=True)
elif pyatspi.findAncestor(orca_state.locusOfFocus, lambda x: x == event.source):
msg = "WEB: Dumping cache: source is ancestor of focus %s" % orca_state.locusOfFocus
debug.println(debug.LEVEL_INFO, msg, True)
diff --git a/src/orca/scripts/web/script_utilities.py b/src/orca/scripts/web/script_utilities.py
index b2c9369b1..ca59e9249 100644
--- a/src/orca/scripts/web/script_utilities.py
+++ b/src/orca/scripts/web/script_utilities.py
@@ -4760,6 +4760,7 @@ class Utilities(script_utilities.Utilities):
return False
obj, offset = None, -1
+ notify = True
keyString, mods = self.lastKeyAndModifiers()
if keyString == "Up":
if event.detail1 >= event.source.childCount:
@@ -4793,9 +4794,13 @@ class Utilities(script_utilities.Utilities):
debug.println(debug.LEVEL_INFO, msg, True)
obj, offset = self.nextContext(nextObj, -1)
+ else:
+ notify = False
+ obj, offset = self.searchForCaretContext(event.source)
+
if obj:
msg = "WEB: Setting locusOfFocus and context to: %s, %i" % (obj, offset)
- orca.setLocusOfFocus(event, obj, True)
+ orca.setLocusOfFocus(event, obj, notify)
self.setCaretContext(obj, offset)
return True
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]