[orca] Add checks to be sure we have the active document frame in Gecko content



commit c64bd188ab8548b185fd2dd3724cfba8f8242a18
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Sat Apr 4 14:01:23 2015 -0400

    Add checks to be sure we have the active document frame in Gecko content
    
    https://bugzilla.gnome.org/show_bug.cgi?id=747329

 src/orca/scripts/toolkits/Gecko/script.py          |    3 +++
 .../scripts/toolkits/Gecko/script_utilities.py     |    7 ++++++-
 2 files changed, 9 insertions(+), 1 deletions(-)
---
diff --git a/src/orca/scripts/toolkits/Gecko/script.py b/src/orca/scripts/toolkits/Gecko/script.py
index e52e5a4..1be02d6 100644
--- a/src/orca/scripts/toolkits/Gecko/script.py
+++ b/src/orca/scripts/toolkits/Gecko/script.py
@@ -250,6 +250,9 @@ class Script(default.Script):
         self._sayAllIsInterrupted = False
         self._loadingDocumentContent = False
         self._loadingDocumentTime = 0.0
+        self._lastCommandWasCaretNav = False
+        self._lastCommandWasStructNav = False
+        self._lastCommandWasMouseButton = False
 
     def getBookmarks(self):
         """Returns the "bookmarks" class for this script.
diff --git a/src/orca/scripts/toolkits/Gecko/script_utilities.py 
b/src/orca/scripts/toolkits/Gecko/script_utilities.py
index 9d3e4dd..d332255 100644
--- a/src/orca/scripts/toolkits/Gecko/script_utilities.py
+++ b/src/orca/scripts/toolkits/Gecko/script_utilities.py
@@ -97,7 +97,8 @@ class Utilities(script_utilities.Utilities):
         #
         documentFrame = None
         for child in self._script.app:
-            if child.getRole() == pyatspi.ROLE_FRAME:
+            if child.getRole() == pyatspi.ROLE_FRAME \
+               and child.getState().contains(pyatspi.STATE_ACTIVE):
                 relationSet = child.getRelationSet()
                 for relation in relationSet:
                     if relation.getRelationType()  \
@@ -119,6 +120,10 @@ class Utilities(script_utilities.Utilities):
                 [pyatspi.ROLE_DOCUMENT_FRAME],
                 [pyatspi.ROLE_FRAME])
 
+        if not documentFrame and orca_state.locusOfFocus \
+           and orca_state.locusOfFocus.getRole() == pyatspi.ROLE_DOCUMENT_FRAME:
+            documentFrame = orca_state.locusOfFocus
+
         return documentFrame
 
     def documentFrameURI(self):


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