[orca] Add initial support for description change events
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca] Add initial support for description change events
- Date: Thu, 7 May 2020 18:20:57 +0000 (UTC)
commit be2219364cc7fd9ba563c907cf08405966a4575e
Author: Joanmarie Diggs <jdiggs igalia com>
Date: Thu May 7 14:19:21 2020 -0400
Add initial support for description change events
If the description changes for the locusOfFocus, present the new
description. We deliberately ignore events from things which are not
the locusOfFocus due to event spam and irrelevant chattiness.
src/orca/scripts/default.py | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
---
diff --git a/src/orca/scripts/default.py b/src/orca/scripts/default.py
index dcc63fbab..36f560eb7 100644
--- a/src/orca/scripts/default.py
+++ b/src/orca/scripts/default.py
@@ -551,6 +551,8 @@ class Script(script.Script):
self.onMouseButton
listeners["object:property-change:accessible-name"] = \
self.onNameChanged
+ listeners["object:property-change:accessible-description"] = \
+ self.onDescriptionChanged
listeners["object:text-caret-moved"] = \
self.onCaretMoved
listeners["object:text-changed:delete"] = \
@@ -750,6 +752,7 @@ class Script(script.Script):
role = obj.getRole()
state = obj.getState()
name = obj.name
+ description = obj.description
except:
return
@@ -767,6 +770,10 @@ class Script(script.Script):
self.pointOfReference['names'] = names
+ descriptions = self.pointOfReference.get('descriptions', {})
+ descriptions[hash(obj)] = description
+ self.pointOfReference['descriptions'] = descriptions
+
# We want to save the offset for text objects because some apps and
# toolkits emit caret-moved events immediately after a text object
# gains focus, even though the caret has not actually moved.
@@ -2305,6 +2312,27 @@ class Script(script.Script):
debug.println(debug.LEVEL_INFO, msg, True)
self._presentTextAtNewCaretPosition(event)
+ def onDescriptionChanged(self, event):
+ """Callback for object:property-change:accessible-description events."""
+
+ obj = event.source
+ descriptions = self.pointOfReference.get('description', {})
+ oldDescription = descriptions.get(hash(obj))
+ if oldDescription == event.any_data:
+ msg = "DEFAULT: Old description (%s) is the same as new one" % oldDescription
+ debug.println(debug.LEVEL_INFO, msg, True)
+ return
+
+ if obj != orca_state.locusOfFocus:
+ msg = "DEFAULT: Event is for object other than the locusOfFocus"
+ debug.println(debug.LEVEL_INFO, msg, True)
+ return
+
+ descriptions[hash(obj)] = event.any_data
+ self.pointOfReference['descriptions'] = descriptions
+ if event.any_data:
+ self.presentMessage(event.any_data)
+
def onDocumentReload(self, event):
"""Callback for document:reload accessibility events."""
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]