[orca] Work around unforunate event order when switching page tabs in Gecko apps
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca] Work around unforunate event order when switching page tabs in Gecko apps
- Date: Fri, 18 Mar 2016 19:53:23 +0000 (UTC)
commit a5350d44d4f29785e85f0b905867656c07f50e2f
Author: Joanmarie Diggs <jdiggs igalia com>
Date: Fri Mar 18 15:52:46 2016 -0400
Work around unforunate event order when switching page tabs in Gecko apps
src/orca/scripts/web/script.py | 10 ++++++++++
src/orca/scripts/web/script_utilities.py | 17 +++++++++++++++++
2 files changed, 27 insertions(+), 0 deletions(-)
---
diff --git a/src/orca/scripts/web/script.py b/src/orca/scripts/web/script.py
index 7694a00..8ad3fc2 100644
--- a/src/orca/scripts/web/script.py
+++ b/src/orca/scripts/web/script.py
@@ -1594,6 +1594,11 @@ class Script(default.Script):
debug.println(debug.LEVEL_INFO, msg, True)
return True
+ if self.utilities.eventIsChromePageSwitchNoise(event):
+ msg = "WEB: Ignoring event believed to be chrome page switch noise"
+ debug.println(debug.LEVEL_INFO, msg, True)
+ return True
+
if not self.utilities.inDocumentContent(event.source):
msg = "WEB: Event source is not in document content"
debug.println(debug.LEVEL_INFO, msg, True)
@@ -1614,6 +1619,11 @@ class Script(default.Script):
debug.println(debug.LEVEL_INFO, msg, True)
return True
+ if self.utilities.eventIsChromePageSwitchNoise(event):
+ msg = "WEB: Ignoring event believed to be chrome page switch noise"
+ debug.println(debug.LEVEL_INFO, msg, True)
+ return True
+
if not self.utilities.inDocumentContent(event.source):
msg = "WEB: Event source is not in document content"
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 7890610..318bcc6 100644
--- a/src/orca/scripts/web/script_utilities.py
+++ b/src/orca/scripts/web/script_utilities.py
@@ -2460,6 +2460,23 @@ class Utilities(script_utilities.Utilities):
return False
+ def eventIsChromePageSwitchNoise(self, event):
+ selection = ["object:selection-changed", "object:state-changed:selected"]
+ if not event.type in selection:
+ return False
+
+ roles = [pyatspi.ROLE_PAGE_TAB, pyatspi.ROLE_PAGE_TAB_LIST]
+ if not event.source.getRole() in roles:
+ return False
+
+ if self.inDocumentContent(event.source):
+ return False
+
+ if not self.inDocumentContent(orca_state.locusOfFocus):
+ return False
+
+ return True
+
def textEventIsDueToInsertion(self, event):
if not event.type.startswith("object:text-"):
return False
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]