[orca] Sanity-check focus events for tables after leaving typeahead search



commit c373327a54c777f36e1bb7ac695800b4159e1a09
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Tue Jan 16 13:27:40 2018 -0500

    Sanity-check focus events for tables after leaving typeahead search
    
    If something else has already claimed focus, announcing the table
    which has already given up focus is just pointless noise.

 src/orca/scripts/toolkits/GAIL/script.py |    5 +++++
 src/orca/scripts/toolkits/gtk/script.py  |    5 +++++
 2 files changed, 10 insertions(+), 0 deletions(-)
---
diff --git a/src/orca/scripts/toolkits/GAIL/script.py b/src/orca/scripts/toolkits/GAIL/script.py
index 8b98329..e870dd7 100644
--- a/src/orca/scripts/toolkits/GAIL/script.py
+++ b/src/orca/scripts/toolkits/GAIL/script.py
@@ -75,6 +75,11 @@ class Script(default.Script):
         if self.utilities.isLayoutOnly(event.source):
             return
 
+        if self.utilities.isTypeahead(orca_state.locusOfFocus) \
+           and "Table" in pyatspi.listInterfaces(event.source) \
+           and not event.source.getState().contains(pyatspi.STATE_FOCUSED):
+            return
+
         ancestor = pyatspi.findAncestor(orca_state.locusOfFocus, lambda x: x == event.source)
         if not ancestor:
             orca.setLocusOfFocus(event, event.source)
diff --git a/src/orca/scripts/toolkits/gtk/script.py b/src/orca/scripts/toolkits/gtk/script.py
index 8fc9e07..96cb8d3 100644
--- a/src/orca/scripts/toolkits/gtk/script.py
+++ b/src/orca/scripts/toolkits/gtk/script.py
@@ -120,6 +120,11 @@ class Script(default.Script):
         if self.utilities.isLayoutOnly(event.source):
             return
 
+        if self.utilities.isTypeahead(orca_state.locusOfFocus) \
+           and "Table" in pyatspi.listInterfaces(event.source) \
+           and not event.source.getState().contains(pyatspi.STATE_FOCUSED):
+            return
+
         ancestor = pyatspi.findAncestor(orca_state.locusOfFocus, lambda x: x == event.source)
         if not ancestor:
             orca.setLocusOfFocus(event, event.source)


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