Skip to content

Commit 15077a3

Browse files
Merge pull request #985 from mitchmindtree/slider_skew_fix
Fix bug where skewed sliders were displayed incorrectly
2 parents cb984ff + 5fbca8b commit 15077a3

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/widget/slider.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,15 +185,17 @@ impl<'a, T> Widget for Slider<'a, T>
185185
.set(state.ids.border, ui);
186186

187187
// The **Rectangle** for the adjustable slider.
188+
let value_perc = map_range(new_value, min, max, 0.0, 1.0);
189+
let unskewed_perc = value_perc.powf(1.0 / skew as f64);
188190
let slider_rect = if is_horizontal {
189191
let left = inner_rect.x.start;
190-
let right = map_range(new_value, min, max, left, inner_rect.x.end);
192+
let right = map_range(unskewed_perc, 0.0, 1.0, left, inner_rect.x.end);
191193
let x = Range::new(left, right);
192194
let y = inner_rect.y;
193195
Rect { x: x, y: y }
194196
} else {
195197
let bottom = inner_rect.y.start;
196-
let top = map_range(new_value, min, max, bottom, inner_rect.y.end);
198+
let top = map_range(unskewed_perc, 0.0, 1.0, bottom, inner_rect.y.end);
197199
let x = inner_rect.x;
198200
let y = Range::new(bottom, top);
199201
Rect { x: x, y: y }

0 commit comments

Comments
 (0)