[orca/gnome-3-16] Don't search for replicants for Gecko zombies when pages are being loaded



commit e6a7bc8ec5cf7f0df33ba9faaa59d20f9131542b
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Wed Apr 8 11:21:54 2015 -0400

    Don't search for replicants for Gecko zombies when pages are being loaded
    
    If pyatspi is looking for descendants in a tree that gets destroyed during
    the search, Orca can hang.

 src/orca/scripts/toolkits/Gecko/script.py |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
---
diff --git a/src/orca/scripts/toolkits/Gecko/script.py b/src/orca/scripts/toolkits/Gecko/script.py
index e52e5a4..758812d 100644
--- a/src/orca/scripts/toolkits/Gecko/script.py
+++ b/src/orca/scripts/toolkits/Gecko/script.py
@@ -1078,10 +1078,10 @@ class Script(default.Script):
         if focusRole == pyatspi.ROLE_LIST_ITEM \
            and not self.inDocumentContent(orca_state.locusOfFocus):
             return
- 
+
+        self._loadingDocumentContent = event.detail1
         finishedLoading = False
         if event.detail1:
-            self._loadingDocumentContent = True
             message = messages.PAGE_LOADING_START
         elif name:
             message = messages.PAGE_LOADING_END_NAMED % name
@@ -1152,7 +1152,7 @@ class Script(default.Script):
         # because the proverbial rug has just been pulled out from under us. :(
         # To make matters worse, the replacement object can be in the ancestry.
         obj, offset = self.getCaretContext()
-        if obj and self.utilities.isZombie(obj):
+        if obj and self.utilities.isZombie(obj) and not self._loadingDocumentContent:
             replicant = self.utilities.findReplicant(event.source, obj)
             if replicant:
                 # Refrain from actually touching the replicant by grabbing


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