Merge pull request #527 from rubik83/master
Account for empty ranges in `Slider` and `ProgressBar`
This commit is contained in:
commit
50a1f78996
|
@ -31,10 +31,13 @@ where
|
|||
style_sheet: &Self::Style,
|
||||
) -> Self::Output {
|
||||
let style = style_sheet.style();
|
||||
|
||||
let (range_start, range_end) = range.into_inner();
|
||||
let active_progress_width = bounds.width
|
||||
* ((value - range_start) / (range_end - range_start).max(1.0));
|
||||
|
||||
let active_progress_width = if range_start >= range_end {
|
||||
0.0
|
||||
} else {
|
||||
bounds.width * (value - range_start) / (range_end - range_start)
|
||||
};
|
||||
|
||||
let background = Primitive::Group {
|
||||
primitives: vec![Primitive::Quad {
|
||||
|
|
|
@ -72,8 +72,6 @@ where
|
|||
},
|
||||
);
|
||||
|
||||
let (range_start, range_end) = range.into_inner();
|
||||
|
||||
let (handle_width, handle_height, handle_border_radius) = match style
|
||||
.handle
|
||||
.shape
|
||||
|
@ -87,8 +85,14 @@ where
|
|||
} => (f32::from(width), f32::from(bounds.height), border_radius),
|
||||
};
|
||||
|
||||
let handle_offset = (bounds.width - handle_width)
|
||||
* ((value - range_start) / (range_end - range_start).max(1.0));
|
||||
let (range_start, range_end) = range.into_inner();
|
||||
|
||||
let handle_offset = if range_start >= range_end {
|
||||
0.0
|
||||
} else {
|
||||
(bounds.width - handle_width) * (value - range_start)
|
||||
/ (range_end - range_start)
|
||||
};
|
||||
|
||||
let handle = Primitive::Quad {
|
||||
bounds: Rectangle {
|
||||
|
|
Loading…
Reference in New Issue