[orca] Skip sanity checking for event types often seen in event floods



commit 9a420f7671f5c24a65fa68d3339ad3f9376d1ad5
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Sat Feb 25 09:53:45 2017 -0500

    Skip sanity checking for event types often seen in event floods
    
    The following events seem irrelevant to the double-speaking problem,
    but show up in event floods from certain applications and toolkits:
    
    * "object:active-descendant-changed",
    * "object:children-changed",
    * "object:column-reordered",
    * "object:row-reordered",
    * "object:property-change",
    * "object:selection-changed"
    * "object:state-changed:checked",
    * "object:state-changed:expanded",
    * "object:state-changed:indeterminate",
    * "object:state-changed:pressed",
    * "object:state-changed:selected",
    * "object:state-changed:sensitive",
    * "object:state-changed:showing",
    * "object:text-changed"
    
    Hopefully skipping sanity checking for the above will make it possible
    to work around the Gecko-with-Gtk+3 bogus accessible-app creation without
    hurting performance.

 src/orca/event_manager.py |   18 +++++++++++++++++-
 1 files changed, 17 insertions(+), 1 deletions(-)
---
diff --git a/src/orca/event_manager.py b/src/orca/event_manager.py
index bfb4687..63088bd 100644
--- a/src/orca/event_manager.py
+++ b/src/orca/event_manager.py
@@ -540,7 +540,23 @@ class EventManager:
             msg = 'WARNING: Exception when getting script for event.'
             debug.println(debug.LEVEL_WARNING, msg, True)
         else:
-            check = True
+            skipCheck = [
+                "object:active-descendant-changed",
+                "object:children-changed",
+                "object:column-reordered",
+                "object:row-reordered",
+                "object:property-change",
+                "object:selection-changed"
+                "object:state-changed:checked",
+                "object:state-changed:expanded",
+                "object:state-changed:indeterminate",
+                "object:state-changed:pressed",
+                "object:state-changed:selected",
+                "object:state-changed:sensitive",
+                "object:state-changed:showing",
+                "object:text-changed",
+            ]
+            check = not list(filter(lambda x: event.type.startswith(x), skipCheck))
             msg = 'EVENT MANAGER: Getting script for %s (check: %s)' % (app, check)
             debug.println(debug.LEVEL_INFO, msg, True)
             script = _scriptManager.getScript(app, event.source, sanityCheck=check)


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