[orca] Include the object when scripts retrieve the voice directly



commit 94ede00e6db3ad84b658e41919d21cc4fa783b7c
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Thu Jan 6 16:28:55 2022 +0100

    Include the object when scripts retrieve the voice directly
    
    Ideally all speech generation would be done by the speech generators.
    Unfortunately, there is some legacy code in the scripts which bypasses
    this logic. That code needs to include the object when retrieving the
    voice from the speech generator so that the to-be-implemented on-the-fly
    language switching works with those methods.

 src/orca/mouse_review.py                      |  2 +-
 src/orca/scripts/default.py                   | 12 ++++++------
 src/orca/scripts/terminal/script.py           |  2 +-
 src/orca/scripts/toolkits/WebKitGtk/script.py |  2 +-
 4 files changed, 9 insertions(+), 9 deletions(-)
---
diff --git a/src/orca/mouse_review.py b/src/orca/mouse_review.py
index c2c548afb..1a8687229 100644
--- a/src/orca/mouse_review.py
+++ b/src/orca/mouse_review.py
@@ -141,7 +141,7 @@ class _StringContext:
             debug.println(debug.LEVEL_INFO, msg, True)
             return False
 
-        voice = self._script.speechGenerator.voice(string=self._string)
+        voice = self._script.speechGenerator.voice(obj=self._obj, string=self._string)
         string = self._script.utilities.adjustForRepeats(self._string)
 
         orca.emitRegionChanged(self._obj, self._start, self._end, orca.MOUSE_REVIEW)
diff --git a/src/orca/scripts/default.py b/src/orca/scripts/default.py
index d09059d9c..4257505ba 100644
--- a/src/orca/scripts/default.py
+++ b/src/orca/scripts/default.py
@@ -2848,7 +2848,7 @@ class Script(script.Script):
             if len(string) == 1:
                 self.speakCharacter(string)
             else:
-                voice = self.speechGenerator.voice(string=string)
+                voice = self.speechGenerator.voice(obj=event.source, string=string)
                 string = self.utilities.adjustForRepeats(string)
                 speech.speak(string, voice)
 
@@ -3283,7 +3283,7 @@ class Script(script.Script):
             sentence = self.utilities.substring(obj, sentenceStartOffset + 1,
                                          sentenceEndOffset + 1)
 
-        voice = self.speechGenerator.voice(string=sentence)
+        voice = self.speechGenerator.voice(obj=obj, string=sentence)
         sentence = self.utilities.adjustForRepeats(sentence)
         speech.speak(sentence, voice)
         return True
@@ -3359,7 +3359,7 @@ class Script(script.Script):
             word = self.utilities.\
                 substring(obj, wordStartOffset + 1, wordEndOffset + 1)
 
-        voice = self.speechGenerator.voice(string=word)
+        voice = self.speechGenerator.voice(obj=obj, string=word)
         word = self.utilities.adjustForRepeats(word)
         speech.speak(word, voice)
         return True
@@ -3431,7 +3431,7 @@ class Script(script.Script):
             endOffset = startOffset + len(line)
             orca.emitRegionChanged(obj, startOffset, endOffset, orca.CARET_TRACKING)
 
-            voice = self.speechGenerator.voice(string=line)
+            voice = self.speechGenerator.voice(obj=obj, string=line)
             line = self.utilities.adjustForLinks(obj, line, startOffset)
             line = self.utilities.adjustForRepeats(line)
             if self.utilities.shouldVerbalizeAllPunctuation(obj):
@@ -3469,7 +3469,7 @@ class Script(script.Script):
 
             orca.emitRegionChanged(obj, startOffset, endOffset, orca.CARET_TRACKING)
 
-            voice = self.speechGenerator.voice(string=phrase)
+            voice = self.speechGenerator.voice(obj=obj, string=phrase)
             phrase = self.utilities.adjustForRepeats(phrase)
             if self.utilities.shouldVerbalizeAllPunctuation(obj):
                 phrase = self.utilities.verbalizeAllPunctuation(phrase)
@@ -3769,7 +3769,7 @@ class Script(script.Script):
                 lastEndOffset = endOffset
                 offset = endOffset
 
-                voice = self.speechGenerator.voice(string=lineString)
+                voice = self.speechGenerator.voice(obj=obj, string=lineString)
                 if voice and isinstance(voice, list):
                     voice = voice[0]
 
diff --git a/src/orca/scripts/terminal/script.py b/src/orca/scripts/terminal/script.py
index a4d2bd9ee..102cf4a86 100644
--- a/src/orca/scripts/terminal/script.py
+++ b/src/orca/scripts/terminal/script.py
@@ -96,7 +96,7 @@ class Script(default.Script):
         if len(newString) == 1:
             self.speakCharacter(newString)
         else:
-            voice = self.speechGenerator.voice(string=newString)
+            voice = self.speechGenerator.voice(obj=event.source, string=newString)
             speech.speak(newString, voice)
 
         if self.flatReviewContext:
diff --git a/src/orca/scripts/toolkits/WebKitGtk/script.py b/src/orca/scripts/toolkits/WebKitGtk/script.py
index a3a123763..90769d51d 100644
--- a/src/orca/scripts/toolkits/WebKitGtk/script.py
+++ b/src/orca/scripts/toolkits/WebKitGtk/script.py
@@ -355,7 +355,7 @@ class Script(default.Script):
 
         phrase = self.utilities.substring(obj, startOffset, endOffset)
         if len(phrase) and phrase != "\n":
-            voice = self.speechGenerator.voice(string=phrase)
+            voice = self.speechGenerator.voice(obj=obj, string=phrase)
             phrase = self.utilities.adjustForRepeats(phrase)
             links = [x for x in obj if x.getRole() == pyatspi.ROLE_LINK]
             if links:


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]