accessibility/magnifier: Add new settings

This commit is contained in:
Victoria Brekenfeld 2025-03-26 17:31:55 +01:00 committed by Michael Murphy
parent 48e14d4add
commit 665e4e13b8
3 changed files with 36 additions and 1 deletions

View file

@ -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]