[orca/sayall-progress-event-scroll2: 2/2] Call text.scrollSubstringTo on speech progress
- From: Samuel Thibault <sthibaul src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca/sayall-progress-event-scroll2: 2/2] Call text.scrollSubstringTo on speech progress
- Date: Thu, 26 Sep 2019 16:27:32 +0000 (UTC)
commit 1fe9484995916ac672dafb417c6bbb8960fc5dbe
Author: Samuel Thibault <samuel thibault ens-lyon org>
Date: Thu Sep 26 18:22:42 2019 +0200
Call text.scrollSubstringTo on speech progress
So that if all the text could not fit on the screen, we get progressive
scrolling.
src/orca/eventsynthesizer.py | 14 ++++++++++++++
1 file changed, 14 insertions(+)
---
diff --git a/src/orca/eventsynthesizer.py b/src/orca/eventsynthesizer.py
index ed5458331..a812a9b31 100644
--- a/src/orca/eventsynthesizer.py
+++ b/src/orca/eventsynthesizer.py
@@ -40,6 +40,11 @@ try:
except:
_canScrollTo = False
+try:
+ _canScrollSubstringTo = pyatspi.Text.scrollSubstringTo is not None
+except:
+ _canScrollSubstringTo = False
+
def _getMouseCoordinates():
"""Returns the current mouse coordinates."""
@@ -194,6 +199,14 @@ def _scrollSubstringToLocation(obj, location, startOffset, endOffset):
debug.println(debug.LEVEL_INFO, msg, True)
return result
+def scrollSubstringIntoView(obj, startOffset=None, endOffset=None):
+ if not _canScrollSubstringTo:
+ msg = "INFO: Installed version of AT-SPI2 doesn't support scrolling."
+ debug.println(debug.LEVEL_INFO, msg, True)
+ return
+
+ _scrollToLocation(obj, pyatspi.SCROLL_ANYWHERE, startOffset, endOffset)
+
def _scrollObjectToLocation(obj, location):
"""Attemps to scroll obj to the specified location."""
@@ -328,6 +341,7 @@ def grabFocusOn(obj):
def notifyReadingPosition(obj, startOffset, endOffset):
try:
+ scrollSubstringIntoView(obj, startOffset, endOffset)
obj.emit("region-changed", startOffset, endOffset)
except:
return
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]