[orca/gnome-3-12] Add support for non-modal GtkPopover
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca/gnome-3-12] Add support for non-modal GtkPopover
- Date: Tue, 11 Mar 2014 12:19:28 +0000 (UTC)
commit 25c997b0c4d97dd87640aaa4f5b7aa6ecbc4fbbf
Author: Joanmarie Diggs <jdiggs igalia com>
Date: Tue Mar 11 08:15:14 2014 -0400
Add support for non-modal GtkPopover
src/orca/scripts/toolkits/gtk/script.py | 14 ++++++++++++++
src/orca/scripts/toolkits/gtk/script_utilities.py | 16 ++++++++++++++++
2 files changed, 30 insertions(+), 0 deletions(-)
---
diff --git a/src/orca/scripts/toolkits/gtk/script.py b/src/orca/scripts/toolkits/gtk/script.py
index 58feb19..0854391 100644
--- a/src/orca/scripts/toolkits/gtk/script.py
+++ b/src/orca/scripts/toolkits/gtk/script.py
@@ -125,6 +125,20 @@ class Script(default.Script):
orca.setLocusOfFocus(event, obj)
return
+ def onShowingChanged(self, event):
+ """Callback for object:state-changed:showing accessibility events."""
+
+ obj = event.source
+ if not self.utilities._isNonModalPopOver(obj):
+ default.Script.onShowingChanged(self, event)
+ return
+
+ if event.detail1:
+ speech.speak(self.speechGenerator.generateSpeech(obj))
+ labels = self.utilities.unrelatedLabels(obj)
+ msg = ' '.join(map(self.utilities.displayedText, labels))
+ self.presentMessage(msg)
+
def onTextSelectionChanged(self, event):
"""Callback for object:text-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 cb38144..9af0b8b 100644
--- a/src/orca/scripts/toolkits/gtk/script_utilities.py
+++ b/src/orca/scripts/toolkits/gtk/script_utilities.py
@@ -67,3 +67,19 @@ class Utilities(script_utilities.Utilities):
return True
return False
+
+ def _isNonModalPopOver(self, obj):
+ try:
+ state = obj.getState()
+ except:
+ return False
+
+ if obj.getState().contains(pyatspi.STATE_MODAL):
+ return False
+
+ relations = obj.getRelationSet()
+ for relation in relations:
+ if relation.getRelationType() == pyatspi.RELATION_POPUP_FOR:
+ return True
+
+ return False
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]