From 84371fcc4ee7a5973faeb40294f7215b5700e977 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Wed, 18 Jun 2025 18:59:08 -0700 Subject: [PATCH] screenreader: Always try to start/stop orca in set_enabled --- src/screenreader.rs | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/src/screenreader.rs b/src/screenreader.rs index b07867a..d88e532 100644 --- a/src/screenreader.rs +++ b/src/screenreader.rs @@ -146,21 +146,19 @@ impl<'dbus> OrcaManager<'dbus> { } pub async fn set_enabled(&mut self, enable: bool) -> Result<()> { - if self.enabled == enable { - return Ok(()); - } - - #[cfg(not(test))] - { - let a11ysettings = Settings::new(A11Y_SETTING); - a11ysettings - .set_boolean(SCREEN_READER_SETTING, enable) - .map_err(|e| anyhow!("Unable to set screen reader enabled gsetting, {e}"))?; - } - if let Err(e) = self.set_orca_enabled(enable).await { - match e.downcast_ref::() { - Some(e) if e.kind() == ErrorKind::NotFound => (), - _ => return Err(e), + if enable != self.enabled { + #[cfg(not(test))] + { + let a11ysettings = Settings::new(A11Y_SETTING); + a11ysettings + .set_boolean(SCREEN_READER_SETTING, enable) + .map_err(|e| anyhow!("Unable to set screen reader enabled gsetting, {e}"))?; + } + if let Err(e) = self.set_orca_enabled(enable).await { + match e.downcast_ref::() { + Some(e) if e.kind() == ErrorKind::NotFound => (), + _ => return Err(e), + } } } if enable {