[orca] Improve presentation of GtkEntryCompletion
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca] Improve presentation of GtkEntryCompletion
- Date: Mon, 16 Nov 2015 18:18:36 +0000 (UTC)
commit 6e394d971ef9e66069bfaf76e21b0955639fa0d1
Author: Joanmarie Diggs <jdiggs igalia com>
Date: Mon Nov 16 13:12:29 2015 -0500
Improve presentation of GtkEntryCompletion
src/orca/script_utilities.py | 3 +++
src/orca/scripts/toolkits/gtk/script.py | 13 +++++++++++++
src/orca/scripts/toolkits/gtk/script_utilities.py | 9 +++++++++
3 files changed, 25 insertions(+), 0 deletions(-)
---
diff --git a/src/orca/script_utilities.py b/src/orca/script_utilities.py
index 79d8e6f..de7b4c9 100644
--- a/src/orca/script_utilities.py
+++ b/src/orca/script_utilities.py
@@ -2754,6 +2754,9 @@ class Utilities:
return child
+ def isEntryCompletionPopupItem(self, obj):
+ return False
+
def _isNonModalPopOver(self, obj):
return False
diff --git a/src/orca/scripts/toolkits/gtk/script.py b/src/orca/scripts/toolkits/gtk/script.py
index 2fa5eee..e5a309b 100644
--- a/src/orca/scripts/toolkits/gtk/script.py
+++ b/src/orca/scripts/toolkits/gtk/script.py
@@ -183,6 +183,19 @@ class Script(default.Script):
orca.setLocusOfFocus(event, obj)
return
+ def onSelectedChanged(self, event):
+ """Callback for object:state-changed:selected accessibility events."""
+
+ if self.utilities.isEntryCompletionPopupItem(event.source):
+ if event.detail1:
+ orca.setLocusOfFocus(event, event.source)
+ return
+ if orca_state.locusOfFocus == event.source:
+ orca.setLocusOfFocus(event, None)
+ return
+
+ super().onSelectedChanged(event)
+
def onSelectionChanged(self, event):
"""Callback for object:selection-changed accessibility events."""
diff --git a/src/orca/scripts/toolkits/gtk/script_utilities.py
b/src/orca/scripts/toolkits/gtk/script_utilities.py
index 772f752..593d7e4 100644
--- a/src/orca/scripts/toolkits/gtk/script_utilities.py
+++ b/src/orca/scripts/toolkits/gtk/script_utilities.py
@@ -69,6 +69,15 @@ class Utilities(script_utilities.Utilities):
return False
+ def isEntryCompletionPopupItem(self, obj):
+ if obj.getRole() == pyatspi.ROLE_TABLE_CELL:
+ isWindow = lambda x: x and x.getRole() == pyatspi.ROLE_WINDOW
+ window = pyatspi.findAncestor(obj, isWindow)
+ if window:
+ return True
+
+ return False
+
def _isNonModalPopOver(self, obj):
try:
state = obj.getState()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]