From 665e4e13b831eab8558734f44d1c0d2bc32fc35d Mon Sep 17 00:00:00 2001 From: Victoria Brekenfeld Date: Wed, 26 Mar 2025 17:31:55 +0100 Subject: [PATCH] accessibility/magnifier: Add new settings --- Cargo.lock | 2 +- .../src/pages/accessibility/magnifier.rs | 33 +++++++++++++++++++ i18n/en/cosmic_settings.ftl | 2 ++ 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 481d665..71b31b1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1510,7 +1510,7 @@ dependencies = [ [[package]] name = "cosmic-comp-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-comp#b0d0bfb034150bed134d3c4f29d49a6a22f4454c" +source = "git+https://github.com/pop-os/cosmic-comp#c072538a6e8ac8fbde7863c60eea05f78b6ee3de" dependencies = [ "cosmic-config", "input", diff --git a/cosmic-settings/src/pages/accessibility/magnifier.rs b/cosmic-settings/src/pages/accessibility/magnifier.rs index 38a36ae..3da2e63 100644 --- a/cosmic-settings/src/pages/accessibility/magnifier.rs +++ b/cosmic-settings/src/pages/accessibility/magnifier.rs @@ -40,6 +40,8 @@ pub enum Message { Event(wayland::AccessibilityEvent), ProtocolUnavailable, SetMagnifier(bool), + SetMouseShortcuts(bool), + SetOverlay(bool), SetIncrement(usize), SetSignin(bool), SetMovement(ZoomMovement), @@ -197,6 +199,8 @@ pub fn magnifier( crate::slab!(descriptions { magnifier = fl!("magnifier"); controls = fl!("magnifier", "controls", zoom_in = zoom_in, zoom_out = zoom_out); + scroll_controls = fl!("magnifier", "scroll_controls"); + show_overlay = fl!("magnifier", "show_overlay"); increment = fl!("magnifier", "increment"); signin = fl!("magnifier", "signin"); }); @@ -216,6 +220,15 @@ pub fn magnifier( widget::toggler(page.magnifier_state).on_toggle(Message::SetMagnifier), ), ) + .add(settings::item( + &descriptions[scroll_controls], + widget::toggler(page.zoom_config.enable_mouse_zoom_shortcuts) + .on_toggle(Message::SetMouseShortcuts), + )) + .add(settings::item( + &descriptions[show_overlay], + widget::toggler(page.zoom_config.show_overlay).on_toggle(Message::SetOverlay), + )) .add(settings::item( &descriptions[increment], widget::dropdown::popup_dropdown( @@ -337,6 +350,26 @@ impl Page { let _ = sender.send(AccessibilityRequest::Magnifier(value)); } } + Message::SetMouseShortcuts(value) => { + self.zoom_config.enable_mouse_zoom_shortcuts = value; + + if let Err(err) = self + .accessibility_config + .set("accessibility_zoom", self.zoom_config) + { + error!(?err, "Failed to set config 'accessibility_zoom'"); + } + } + Message::SetOverlay(value) => { + self.zoom_config.show_overlay = value; + + if let Err(err) = self + .accessibility_config + .set("accessibility_zoom", self.zoom_config) + { + error!(?err, "Failed to set config 'accessibility_zoom'"); + } + } Message::SetIncrement(idx) => { self.increment_idx = Some(idx); let value = self.increment_values[idx] diff --git a/i18n/en/cosmic_settings.ftl b/i18n/en/cosmic_settings.ftl index 1bb9f61..e4e489e 100644 --- a/i18n/en/cosmic_settings.ftl +++ b/i18n/en/cosmic_settings.ftl @@ -154,6 +154,8 @@ magnifier = Magnifier {$zoom_out} to zoom out, } Super + scroll with your mouse + .scroll_controls = Enable "Super + Scroll" (via mouse or touchpad) shortcuts + .show_overlay = Show the Magnifier Overlay .increment = Zoom increment .signin = Start magnifier on sign in .applet = Toggle magnifier on/off in applet on the panel