From f7e5fd518fcbc11530ea3fd909a1380c21c0ebae Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Mon, 29 Dec 2025 22:20:02 -0500 Subject: [PATCH] More sound support added. --- distro-packages/Arch-Linux/PKGBUILD | 2 +- src/cthulhu/sound_theme_manager.py | 1 + src/cthulhu/speech_generator.py | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/distro-packages/Arch-Linux/PKGBUILD b/distro-packages/Arch-Linux/PKGBUILD index be65c82..4de0726 100644 --- a/distro-packages/Arch-Linux/PKGBUILD +++ b/distro-packages/Arch-Linux/PKGBUILD @@ -1,7 +1,7 @@ # Maintainer: Storm Dragon pkgname=cthulhu -pkgver=2025.12.28 +pkgver=2025.12.29 pkgrel=1 pkgdesc="Desktop-agnostic screen reader with plugin system, forked from Orca" url="https://git.stormux.org/storm/cthulhu" diff --git a/src/cthulhu/sound_theme_manager.py b/src/cthulhu/sound_theme_manager.py index 0625227..dda047c 100644 --- a/src/cthulhu/sound_theme_manager.py +++ b/src/cthulhu/sound_theme_manager.py @@ -59,6 +59,7 @@ ROLE_SOUND_ALIASES = { Atspi.Role.TOGGLE_BUTTON: ["toggle_button", "button"], Atspi.Role.RADIO_BUTTON: ["radio_button", "radio"], Atspi.Role.CHECK_BOX: ["checkbox", "check_box"], + Atspi.Role.COMBO_BOX: ["combobox", "combo_box"], } ROLE_STATE_SOUND_BASES = { diff --git a/src/cthulhu/speech_generator.py b/src/cthulhu/speech_generator.py index 03d9988..6cfd3ec 100644 --- a/src/cthulhu/speech_generator.py +++ b/src/cthulhu/speech_generator.py @@ -710,8 +710,8 @@ class SpeechGenerator(generator.Generator): if not result: return result - if _settingsManager.getSetting('roleSoundPresentation') \ - == settings.ROLE_SOUND_PRESENTATION_SPEECH_ONLY: + roleSoundPresentation = _settingsManager.getSetting('roleSoundPresentation') + if roleSoundPresentation == settings.ROLE_SOUND_PRESENTATION_SPEECH_ONLY: return result if not _settingsManager.getSetting('enableSound'): @@ -721,6 +721,9 @@ class SpeechGenerator(generator.Generator): if not icon: return result + if roleSoundPresentation == settings.ROLE_SOUND_PRESENTATION_SOUND_ONLY: + return [icon] + return [icon] + result def _generateCheckedState(self, obj, **args):