[orca] Do not enqueue accessible events when Orca is being shut down



commit 58df3cbd7d82932c1edd5fa33534ad2a7ce2c902
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Thu Nov 14 22:20:25 2013 -0500

    Do not enqueue accessible events when Orca is being shut down

 src/orca/event_manager.py |    6 ++++++
 src/orca/orca.py          |    2 +-
 2 files changed, 7 insertions(+), 1 deletions(-)
---
diff --git a/src/orca/event_manager.py b/src/orca/event_manager.py
index cc0003b..bcf4e2f 100644
--- a/src/orca/event_manager.py
+++ b/src/orca/event_manager.py
@@ -45,6 +45,7 @@ class EventManager:
         debug.println(debug.LEVEL_FINEST, 'INFO: Initializing event manager')
         self._scriptListenerCounts = {}
         self.registry = pyatspi.Registry
+        self._active = False
         self._enqueueCount = 0
         self._dequeueCount = 0
         self._eventQueue     = queue.Queue(0)
@@ -61,12 +62,14 @@ class EventManager:
         self._registerListener("window:deactivate")
         self._registerListener("object:children-changed")
         self._registerListener("mouse:button")
+        self._active = True
         debug.println(debug.LEVEL_FINEST, 'INFO: Event manager activated')
 
     def deactivate(self):
         """Called when this event manager is deactivated."""
 
         debug.println(debug.LEVEL_FINEST, 'INFO: Dectivating event manager')
+        self._active = False
         for eventType in list(self._scriptListenerCounts.keys()):
             self.registry.deregisterEventListener(self._enqueue, eventType)
         self._scriptListenerCounts = {}
@@ -75,6 +78,9 @@ class EventManager:
     def _ignore(self, event):
         """Returns True if this event should be ignored."""
 
+        if not self._active:
+            return True
+
         ignoredList = ['object:state-changed:defunct',
                        'object:property-change:accessible-parent']
         ignoredList.extend(settings.ignoredEventsList)
diff --git a/src/orca/orca.py b/src/orca/orca.py
index ae55c4f..bf4ec1c 100644
--- a/src/orca/orca.py
+++ b/src/orca/orca.py
@@ -649,8 +649,8 @@ def shutdown(script=None, inputEvent=None):
 
     orca_state.activeScript.presentMessage(messages.STOP_ORCA)
 
-    _eventManager.deactivate()
     _scriptManager.deactivate()
+    _eventManager.deactivate()
 
     # Shutdown all the other support.
     #


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