Skip to content

Commit 2ce9bb3

Browse files
mikolyszfeerrenrut
authored andcommitted
Fix a bug causing NVDA to use the wrong language when announcing selected/unselected symbols. (PR #7687)
* Fix a bug causing NVDa to use the wrong language when announcing selected/unselected symbols. When languages of the currently selected voice and of NVDA itself differ, NVDA uses the voice language when announcing typed and erased characters. This wasn't the case when selecting by character, the NVDA language was always used.
1 parent b28fe86 commit 2ce9bb3

1 file changed

Lines changed: 8 additions & 5 deletions

File tree

‎source/speech.py‎

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -122,10 +122,13 @@ def speakMessage(text,index=None):
122122
speakText(text,index=index,reason=controlTypes.REASON_MESSAGE)
123123

124124
def getCurrentLanguage():
125-
try:
126-
language=getSynth().language if config.conf['speech']['trustVoiceLanguage'] else None
127-
except NotImplementedError:
128-
language=None
125+
synth=getSynth()
126+
language=None
127+
if synth:
128+
try:
129+
language=synth.language if config.conf['speech']['trustVoiceLanguage'] else None
130+
except NotImplementedError:
131+
pass
129132
if language:
130133
language=languageHandler.normalizeLanguage(language)
131134
if not language:
@@ -596,7 +599,7 @@ def speakSelectionChange(oldInfo,newInfo,speakSelected=True,speakUnselected=True
596599
tempInfo=oldInfo.copy()
597600
tempInfo.setEndPoint(newInfo,"startToEnd")
598601
unselectedTextList.append(tempInfo.text)
599-
locale=languageHandler.getLanguage()
602+
locale=getCurrentLanguage()
600603
if speakSelected:
601604
if not generalize:
602605
for text in selectedTextList:

0 commit comments

Comments
 (0)