[orca] Don't present name and summary for page which is no longer showing or visible



commit d18131258c05a06f61eb08729ce0cdad82d17503
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Tue Jul 12 12:01:51 2016 -0400

    Don't present name and summary for page which is no longer showing or visible

 src/orca/script_utilities.py   |   16 ++++++++++++++++
 src/orca/scripts/web/script.py |    5 +++--
 2 files changed, 19 insertions(+), 2 deletions(-)
---
diff --git a/src/orca/script_utilities.py b/src/orca/script_utilities.py
index bbed192..b7949ed 100644
--- a/src/orca/script_utilities.py
+++ b/src/orca/script_utilities.py
@@ -3483,6 +3483,22 @@ class Utilities:
 
         return False
 
+    def isShowingOrVisible(self, obj):
+        try:
+            state = obj.getState()
+        except:
+            msg = "ERROR: Exception getting state of %s" % obj
+            debug.println(debug.LEVEL_INFO, msg, True)
+            return False
+
+        if state.contains(pyatspi.STATE_SHOWING) \
+           or state.contains(pyatspi.STATE_VISIBLE):
+            return True
+
+        msg = "INFO: %s is neither showing nor visible" % obj
+        debug.println(debug.LEVEL_INFO, msg, True)
+        return False
+
     def isDead(self, obj):
         try:
             name = obj.name
diff --git a/src/orca/scripts/web/script.py b/src/orca/scripts/web/script.py
index 04b2559..c04e25c 100644
--- a/src/orca/scripts/web/script.py
+++ b/src/orca/scripts/web/script.py
@@ -1105,10 +1105,11 @@ class Script(default.Script):
         if not obj or self.utilities.isZombie(obj):
             self.utilities.clearCaretContext()
 
+        shouldPresent = self.utilities.isShowingOrVisible(event.source)
         if not _settingsManager.getSetting('onlySpeakDisplayedText'):
             if event.detail1:
                 self.presentMessage(messages.PAGE_LOADING_START)
-            elif event.source.name:
+            elif event.source.name and shouldPresent:
                 msg = messages.PAGE_LOADING_END_NAMED % event.source.name
                 self.presentMessage(msg, resetStyles=False)
             else:
@@ -1119,7 +1120,7 @@ class Script(default.Script):
 
         self.utilities.clearCachedObjects()
 
-        if _settingsManager.getSetting('pageSummaryOnLoad'):
+        if _settingsManager.getSetting('pageSummaryOnLoad') and shouldPresent:
             msg = "WEB: Getting page summary for obj %s" % obj
             debug.println(debug.LEVEL_INFO, msg, True)
             summary = self.utilities.getPageSummary(obj)


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