diff --git a/src/orca/scripts/apps/gtk-window-decorator/script.py b/src/orca/scripts/apps/gtk-window-decorator/script.py index 3bde12b77fbf8f23263c9e027039d6b793720ffb..e79f00214aa268a7d85a4fbe34b8d1c39d832088 100644 --- a/src/orca/scripts/apps/gtk-window-decorator/script.py +++ b/src/orca/scripts/apps/gtk-window-decorator/script.py @@ -27,6 +27,8 @@ __license__ = "LGPL" import orca.messages as messages import orca.scripts.default as default +import orca.orca as orca +import orca.orca_state as orca_state import pyatspi ######################################################################## @@ -81,7 +83,12 @@ class Script(default.Script): """ if event.source.getRole() != pyatspi.ROLE_STATUS_BAR: - default.Script.onTextInserted(self, event) + return default.Script.onTextInserted(self, event) + + # prevent a window:deactivate from the "current" window to stop + # our speaking. + if orca_state.locusOfFocus: + orca.setLocusOfFocus(event, None) self.presentStatusBar(event.source) diff --git a/src/orca/scripts/apps/metacity/script.py b/src/orca/scripts/apps/metacity/script.py index 29d58d7a6e4bf83794f6a35b8ee73da194ab7c68..1bad82d97c61d41f588c60d5ad3fd872632f9291 100644 --- a/src/orca/scripts/apps/metacity/script.py +++ b/src/orca/scripts/apps/metacity/script.py @@ -27,6 +27,8 @@ __license__ = "LGPL" import orca.messages as messages import orca.scripts.default as default +import orca.orca as orca +import orca.orca_state as orca_state import pyatspi ######################################################################## @@ -76,6 +78,11 @@ class Script(default.Script): # If the status bar is suddenly showing, we need to handle it here # because we typically do not get onTextInserted events at that time. if role == pyatspi.ROLE_STATUS_BAR and event.detail1: + # prevent a window:deactivate from the "current" window to stop + # our speaking. + if orca_state.locusOfFocus: + orca.setLocusOfFocus(event, None) + self.presentStatusBar(obj) return