[orca] More work on bgo#597159 - Orca does not provide access to the contents of Packagemanager's HTML cont
- From: Joanmarie Diggs <joanied src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [orca] More work on bgo#597159 - Orca does not provide access to the contents of Packagemanager's HTML cont
- Date: Sun, 15 Nov 2009 18:28:10 +0000 (UTC)
commit a91a8b2491f6bb3d6472d3adc2ddf5951f011236
Author: Joanmarie Diggs <joanmarie diggs gmail com>
Date: Sun Nov 15 13:22:07 2009 -0500
More work on bgo#597159 - Orca does not provide access to the contents of Packagemanager's HTML container
This solves some really annoying "chattiness" that occurs when arrowing into
or out of a link.
src/orca/scripts/apps/packagemanager/script.py | 34 ++++++++++++++++++++++++
1 files changed, 34 insertions(+), 0 deletions(-)
---
diff --git a/src/orca/scripts/apps/packagemanager/script.py b/src/orca/scripts/apps/packagemanager/script.py
index 46cd354..24be5c0 100644
--- a/src/orca/scripts/apps/packagemanager/script.py
+++ b/src/orca/scripts/apps/packagemanager/script.py
@@ -29,6 +29,7 @@ import pyatspi
import orca.braille as braille
import orca.default as default
+import orca.input_event as input_event
import orca.orca as orca
import orca.orca_state as orca_state
import orca.settings as settings
@@ -82,6 +83,28 @@ class Script(default.Script):
return TutorialGenerator(self)
+ def locusOfFocusChanged(self, event, oldLocusOfFocus, newLocusOfFocus):
+ """Called when the visual object with focus changes.
+
+ Arguments:
+ - event: if not None, the Event that caused the change
+ - oldLocusOfFocus: Accessible that is the old locus of focus
+ - newLocusOfFocus: Accessible that is the new locus of focus
+ """
+
+ # Prevent chattiness when arrowing out of or into a link.
+ #
+ if isinstance(orca_state.lastInputEvent, input_event.KeyboardEvent) \
+ and orca_state.lastNonModifierKeyEvent.event_string in \
+ ["Left", "Right", "Up", "Down"] \
+ and event and event.type.startswith("focus:") \
+ and (self.isLink(oldLocusOfFocus) or self.isLink(newLocusOfFocus)):
+ orca.setLocusOfFocus(event, newLocusOfFocus, False)
+ return
+
+ default.Script.locusOfFocusChanged(
+ self, event, oldLocusOfFocus, newLocusOfFocus)
+
def onCaretMoved(self, event):
"""Called whenever the caret moves.
@@ -89,6 +112,14 @@ class Script(default.Script):
- event: the Event
"""
+ # When arrowing into a link, we get a focus: event followed by two
+ # identical caret-moved events.
+ #
+ lastPos = self.pointOfReference.get("lastCursorPosition")
+ if lastPos and lastPos[0] == event.source \
+ and lastPos[1] == event.detail1:
+ return
+
# Quietly set the locusOfFocus in HTML containers so that the default
# script doesn't ignore this event.
#
@@ -412,6 +443,9 @@ class Script(default.Script):
- obj: an accessible
"""
+ if not obj:
+ return False
+
# Images seem to be exposed as ROLE_PANEL and implement very few of
# the accessibility interfaces.
#
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]