[orca/gnome-3-14] Don't set the caret position in Gecko zombie replicants



commit fec74ee2144b5b066eb1e7a54d669226fcb47216
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Fri Mar 6 20:51:37 2015 -0500

    Don't set the caret position in Gecko zombie replicants
    
    Gecko seems to like to kill certain accessible objects on us upon focus,
    putting a new one in its place. This would completely mess up Orca's caret
    navigation, so we added checks for these zombies and code to try to find
    their replicants. That way, when the proverbial rug was snatched out from
    under our feet, we could reposition ourselves on the replacement object,
    and everything seemed fine. Now, however, the act of setting the caret in
    the replicant seems to be sufficient to cause Gecko to kill that replicant.
    This is why we can't nice things.
    
    The change in this commit is to quietly update our locus of focus without
    touching the zombie and its subsequent replicants in the hopes they'll
    leave us alone so that we can actually navigate within the content.

 src/orca/scripts/toolkits/Gecko/script.py |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
---
diff --git a/src/orca/scripts/toolkits/Gecko/script.py b/src/orca/scripts/toolkits/Gecko/script.py
index 2b8e69b..bc5d57f 100644
--- a/src/orca/scripts/toolkits/Gecko/script.py
+++ b/src/orca/scripts/toolkits/Gecko/script.py
@@ -1119,7 +1119,10 @@ class Script(default.Script):
         if obj and self.utilities.isZombie(obj):
             replicant = self.utilities.findReplicant(event.any_data, obj)
             if replicant:
-                self.setCaretPosition(replicant, offset)
+                # Refrain from actually touching the replicant by grabbing
+                # focus or setting the caret in it. Doing so will only serve
+                # to anger it.
+                orca.setLocusOfFocus(event, replicant, False)
                 return
 
         if self.handleAsLiveRegion(event):


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