[orca] Set the locusOfFocus to context menus when Gecko apps pop them up



commit 83f823422a12f284eba96e52aa0e911d9b49238f
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Mon Nov 11 16:43:19 2013 -0500

    Set the locusOfFocus to context menus when Gecko apps pop them up

 src/orca/scripts/apps/Thunderbird/script.py |   10 ++++++++++
 src/orca/scripts/toolkits/Gecko/script.py   |   18 ++++++++++++++++++
 2 files changed, 28 insertions(+), 0 deletions(-)
---
diff --git a/src/orca/scripts/apps/Thunderbird/script.py b/src/orca/scripts/apps/Thunderbird/script.py
index f138d8d..7d1a2ee 100644
--- a/src/orca/scripts/apps/Thunderbird/script.py
+++ b/src/orca/scripts/apps/Thunderbird/script.py
@@ -401,6 +401,16 @@ class Script(Gecko.Script):
                 self._presentMessage(obj)
 
 
+    def onShowingChanged(self, event):
+        """Callback for object:state-changed:showing accessibility events."""
+
+        # TODO - JD: Once there are separate scripts for the Gecko toolkit
+        # and the Firefox browser, this method can be deleted. It's here
+        # right now just to prevent the Gecko script from presenting non-
+        # existent browsery autocompletes for Thunderbird.
+
+        default.Script.onShowingChanged(self, event)
+
     def onTextDeleted(self, event):
         """Called whenever text is from an an object.
 
diff --git a/src/orca/scripts/toolkits/Gecko/script.py b/src/orca/scripts/toolkits/Gecko/script.py
index 075454f..a90502d 100644
--- a/src/orca/scripts/toolkits/Gecko/script.py
+++ b/src/orca/scripts/toolkits/Gecko/script.py
@@ -1264,6 +1264,20 @@ class Script(default.Script):
         if event.source.getRole() == pyatspi.ROLE_FRAME:
             self.liveMngr.flushMessages()
 
+    def onFocus(self, event):
+        """Callback for focus: accessibility events."""
+
+        # NOTE: This event type is deprecated and Orca should no longer use it.
+        # This callback remains just to handle bugs in applications and toolkits
+        # during the remainder of the unstable (3.11) development cycle.
+
+        role = event.source.getRole()
+
+        # Unfiled. When a context menu pops up, we seem to get a focus: event,
+        # but no object:state-changed:focused event from Gecko.
+        if role == pyatspi.ROLE_MENU:
+            orca.setLocusOfFocus(event, event.source)
+
     def onFocusedChanged(self, event):
         """Callback for object:state-changed:focused accessibility events."""
 
@@ -1355,6 +1369,10 @@ class Script(default.Script):
 
     def onShowingChanged(self, event):
         """Callback for object:state-changed:showing accessibility events."""
+
+        # TODO - JD: Once there are separate scripts for the Gecko toolkit
+        # and the Firefox browser, the stuff below belongs in the browser
+        # script and not in the toolkit script.
  
         try:
             eventRole = event.source.getRole()


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