fix: scroll speed slider

This commit is contained in:
Hojjat 2026-03-17 16:53:23 -06:00 • committed by Ashley Wulber
parent 5c20aa9a75
commit 9118be4093

View file

@ -134,36 +134,37 @@ fn scrolling() -> Section<crate::pages::Message> {
settings::section() settings::section()
.title(&section.title) .title(&section.title)
.add( .add(
settings::flex_item(&descriptions[scroll_speed], { settings::item::builder(&descriptions[scroll_speed])
let value = input .flex_control({
.input_default let value = input
.scroll_config .input_default
.as_ref() .scroll_config
.and_then(|x| x.scroll_factor) .as_ref()
.unwrap_or(1.) .and_then(|x| x.scroll_factor)
.log(2.) .unwrap_or(1.)
* 10.0 .log(2.)
+ 50.0; * 10.0
+ 50.0;
let slider = widget::slider(1.0..=100.0, value, |value| { let slider = widget::slider(1.0..=100.0, value, |value| {
Message::SetScrollFactor(2f64.powf((value - 50.0) / 10.0), false) Message::SetScrollFactor(2f64.powf((value - 50.0) / 10.0), false)
})
.width(Length::Fill)
.breakpoints(&[50.0])
.apply(widget::container)
.max_width(250);
row::with_capacity(2)
.align_y(Alignment::Center)
.spacing(8)
.push(
text::body(format!("{:.0}", value.round()))
.width(Length::Fixed(22.0))
.align_x(Alignment::Center),
)
.push(slider)
}) })
.width(Length::Fill) .align_items(Alignment::Center),
.breakpoints(&[50.0])
.apply(widget::container)
.max_width(250);
row::with_capacity(2)
.align_y(Alignment::Center)
.spacing(8)
.push(
text::body(format!("{:.0}", value.round()))
.width(Length::Fixed(22.0))
.align_x(Alignment::Center),
)
.push(slider)
})
.align_items(Alignment::Center),
) )
.add( .add(
settings::item::builder(&descriptions[natural]) settings::item::builder(&descriptions[natural])