a11y: magnifier: change zoom stepping to multiplicative, bound max, add presets
1. Change magnifier zoom stepping from additive to multiplicative, because zoom is a ratio, not a difference, and human perception is logarithmic (browser zoom steps, map zoom levels, microscope powers). 2. Add `pub const ZoomConfig::ZOOM_INCREMENT_PRESETS` with two additional presets: 10% (macOS, Cinnamon) and 75% (for users at 70-90x zoom). 3. Bound the zoom level to a generous maximum, beyond what anyone is expected to need, to prevent runaway / unrecoverable levels (#1230). Full background and rationale at #2615. I used AI to assist with research and issue writeup. Code is 100% mine. - Closes #2615. - Fixes #1239. - Partially addresses #1230 and #1237.
This commit is contained in:
parent
f20de50e41
commit
738e0b3124
3 changed files with 16 additions and 4 deletions
|
|
@ -198,6 +198,10 @@ pub struct ZoomConfig {
|
|||
pub enable_mouse_zoom_shortcuts: bool,
|
||||
}
|
||||
|
||||
impl ZoomConfig {
|
||||
pub const ZOOM_INCREMENT_PRESETS: &[u32] = &[10, 25, 50, 75, 100, 150, 200];
|
||||
}
|
||||
|
||||
impl Default for ZoomConfig {
|
||||
fn default() -> Self {
|
||||
ZoomConfig {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue