[orca] Call language logic in default _generateCurrentLineText()
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca] Call language logic in default _generateCurrentLineText()
- Date: Fri, 7 Jan 2022 17:00:38 +0000 (UTC)
commit 38acd26f32ffcfca71831586161885da9de6441d
Author: Joanmarie Diggs <jdiggs igalia com>
Date: Fri Jan 7 17:59:42 2022 +0100
Call language logic in default _generateCurrentLineText()
This change should not impact the end-user experience. It is a precursor
to implementing support for on-the-fly language switching.
src/orca/speech_generator.py | 31 +++++++++++++++++++++----------
1 file changed, 21 insertions(+), 10 deletions(-)
---
diff --git a/src/orca/speech_generator.py b/src/orca/speech_generator.py
index 803855cd2..7d6b99281 100644
--- a/src/orca/speech_generator.py
+++ b/src/orca/speech_generator.py
@@ -1224,21 +1224,32 @@ class SpeechGenerator(generator.Generator):
if args.get('inMouseReview') and obj.getState().contains(pyatspi.STATE_EDITABLE):
return []
- result = generator.Generator._generateCurrentLineText(self, obj, **args)
- if not (result and result[0]):
+ result = self._generateSubstring(obj, **args)
+ if result and result[0]:
+ return result
+
+ [text, caretOffset, startOffset] = self._script.getTextLineAtCaret(obj)
+ if self._script.EMBEDDED_OBJECT_CHARACTER in text:
return []
- if result == ['\n'] and _settingsManager.getSetting('speakBlankLines') \
+ if text == '\n' and _settingsManager.getSetting('speakBlankLines') \
and not self._script.inSayAll() and args.get('total', 1) == 1:
result = [messages.BLANK]
+ result.extend(self.voice(string=text, obj=obj, **args))
+ return result
- result[0] = self._script.utilities.adjustForRepeats(result[0])
-
- if self._script.utilities.shouldVerbalizeAllPunctuation(obj):
- result[0] = self._script.utilities.verbalizeAllPunctuation(result[0])
-
- if len(result) == 1:
- result.extend(self.voice(DEFAULT, obj=obj, **args))
+ result = []
+ endOffset = startOffset + len(text)
+ split = self._script.utilities.splitSubstringByLanguage(obj, startOffset, endOffset)
+ for start, end, string, language, dialect in split:
+ if not string:
+ continue
+ args["language"], args["dialect"] = language, dialect
+ voice = self.voice(string=string, obj=obj, **args)
+ string = self._script.utilities.adjustForLinks(obj, string, start)
+ rv = [self._script.utilities.adjustForRepeats(string)]
+ rv.extend(voice)
+ result.append(rv)
return result
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]