orca r4527 - in trunk: . src/orca/scripts/toolkits/Gecko



Author: joanied
Date: Thu Feb 12 04:05:36 2009
New Revision: 4527
URL: http://svn.gnome.org/viewvc/orca?rev=4527&view=rev

Log:
* src/orca/scripts/toolkits/Gecko/script.py:
  More work on bug #571058 - (ARIA) Orca's caret navigation is
  kicking in when it shouldn't be.


Modified:
   trunk/ChangeLog
   trunk/src/orca/scripts/toolkits/Gecko/script.py

Modified: trunk/src/orca/scripts/toolkits/Gecko/script.py
==============================================================================
--- trunk/src/orca/scripts/toolkits/Gecko/script.py	(original)
+++ trunk/src/orca/scripts/toolkits/Gecko/script.py	Thu Feb 12 04:05:36 2009
@@ -1439,12 +1439,12 @@
                 # ignore of all caret-moved events.  See bug #539075 as an
                 # example.
                 #
-                orca.setLocusOfFocus(event, event.source, False)
                 if event.detail1 == 0 and not string in ["Left", "Home"] \
                    or eventSourceRole in [pyatspi.ROLE_PAGE_TAB,
                                           pyatspi.ROLE_LIST_ITEM,
                                           pyatspi.ROLE_MENU_ITEM,
-                                          pyatspi.ROLE_PUSH_BUTTON]:
+                                          pyatspi.ROLE_PUSH_BUTTON,
+                                          pyatspi.ROLE_TOGGLE_BUTTON]:
                     # A focus:/object:state-changed:focused event should
                     # pick up this case.
                     #
@@ -1456,6 +1456,12 @@
                     return
                 else:
                     self.setCaretContext(event.source, event.detail1)
+                    orca.setLocusOfFocus(event, event.source, False)
+
+            elif self.isAriaWidget(orca_state.locusOfFocus) \
+                 and self.isSameObject(event.source,
+                                       orca_state.locusOfFocus.parent):
+                return
 
             elif eventSourceInDocument and not self.inDocumentContent() \
                  and orca_state.locusOfFocus:
@@ -1476,7 +1482,7 @@
         # context and set the locusOfFocus so that the default script's
         # onCaretMoved will handle.
         #
-        if eventSourceInDocument and not self.isAriaWidget():
+        if eventSourceInDocument and not self.isAriaWidget(event.source):
             [obj, characterOffset] = \
                 self.findFirstCaretContext(event.source, event.detail1)
             self.setCaretContext(obj, characterOffset)



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