[orca] Fix for bgo#609633 - Orca can lock up the desktop when exiting apps if in flat review



commit 2b61e3addc3b37f23530dcca7a2b383d1619a599
Author: Willie Walker <wwalker gnome org>
Date:   Tue Feb 16 09:45:48 2010 -0500

    Fix for bgo#609633 - Orca can lock up the desktop when exiting apps
    if in flat review

 src/orca/focus_tracking_presenter.py |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)
---
diff --git a/src/orca/focus_tracking_presenter.py b/src/orca/focus_tracking_presenter.py
index ca580b0..b1f5dc0 100644
--- a/src/orca/focus_tracking_presenter.py
+++ b/src/orca/focus_tracking_presenter.py
@@ -532,6 +532,16 @@ class FocusTrackingPresenter(presentation_manager.PresentationManager):
                     self._cleanupGarbage()
             return
 
+        # Clean up any flat review context so that Orca does not get
+        # confused (see bgo#609633)
+        #
+        if event.type.startswith("window:deactivate") \
+           and orca_state.activeScript \
+           and orca_state.activeScript.flatReviewContext \
+           and orca_state.activeScript.app == event.host_application:
+            orca_state.activeScript.drawOutline(-1, 0, 0, 0)
+            orca_state.activeScript.flatReviewContext = None
+
         try:
             # We don't want to touch a defunct object.  It's useless and it
             # can cause hangs.
@@ -542,10 +552,6 @@ class FocusTrackingPresenter(presentation_manager.PresentationManager):
                     debug.println(debug.LEVEL_FINEST,
                                   "IGNORING DEFUNCT OBJECT")
                     if event.type.startswith("window:deactivate"):
-                        if orca_state.activeScript \
-                           and orca_state.activeScript.flatReviewContext:
-                            orca_state.activeScript.drawOutline(-1, 0, 0, 0)
-                            orca_state.activeScript.flatReviewContext = None
                         orca.setLocusOfFocus(event, None)
                         orca_state.activeWindow = None
                     return



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