[orca] Fix infinite recursion checking links for useless canvas descendants



commit 7edfacdf5f20521c6ef4392615a20f7f288dc8d4
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Tue Oct 13 13:32:18 2015 -0400

    Fix infinite recursion checking links for useless canvas descendants

 src/orca/scripts/web/script_utilities.py |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)
---
diff --git a/src/orca/scripts/web/script_utilities.py b/src/orca/scripts/web/script_utilities.py
index 2707728..599475f 100644
--- a/src/orca/scripts/web/script_utilities.py
+++ b/src/orca/scripts/web/script_utilities.py
@@ -645,13 +645,14 @@ class Utilities(script_utilities.Utilities):
         if not self.isLiveRegion(obj):
             doNotQuery = [pyatspi.ROLE_TABLE_ROW,
                           pyatspi.ROLE_TOOL_BAR]
-            if rv and obj.getRole() in doNotQuery:
+            role = obj.getRole()
+            if rv and role in doNotQuery:
                 rv = None
             if rv and excludeNonEntryTextWidgets and self.isNonEntryTextWidget(obj):
                 rv = None
             if rv and (self.isHidden(obj) or self.isOffScreenLabel(obj)):
                 rv = None
-            if rv and self.isLink(obj) and self.hasUselessCanvasDescendant(obj):
+            if rv and role == pyatspi.ROLE_LINK and self.hasUselessCanvasDescendant(obj):
                 rv = None
 
         self._text[hash(obj)] = rv
@@ -2406,7 +2407,8 @@ class Utilities(script_utilities.Utilities):
         if self.isHidden(obj) or self.isOffScreenLabel(obj):
             return True
 
-        if self.isLink(obj) and self.hasUselessCanvasDescendant(obj):
+        role = obj.getRole()
+        if role == pyatspi.ROLE_LINK and self.hasUselessCanvasDescendant(obj):
             return True
 
         if self.isTextBlockElement(obj):
@@ -2423,7 +2425,7 @@ class Utilities(script_utilities.Utilities):
                         pyatspi.ROLE_TOOL_TIP,
                         pyatspi.ROLE_TREE,
                         pyatspi.ROLE_TREE_TABLE]
-        return obj.getRole() in doNotDescend
+        return role in doNotDescend
 
     def _searchForCaretContext(self, obj):
         contextObj, contextOffset = None, -1


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