Fix upside down slider in the vertical orientation (#3424)
This commit is contained in:
parent
e9f92fee4c
commit
7e2c65a82a
|
|
@ -703,7 +703,9 @@ impl<'a> Slider<'a> {
|
|||
let handle_radius = self.handle_radius(rect);
|
||||
match self.orientation {
|
||||
SliderOrientation::Horizontal => rect.x_range().shrink(handle_radius),
|
||||
SliderOrientation::Vertical => rect.y_range().shrink(handle_radius),
|
||||
// The vertical case has to be flipped because the largest slider value maps to the
|
||||
// lowest y value (which is at the top)
|
||||
SliderOrientation::Vertical => rect.y_range().shrink(handle_radius).flip(),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -97,6 +97,16 @@ impl Rangef {
|
|||
}
|
||||
}
|
||||
|
||||
/// Flip the min and the max
|
||||
#[inline]
|
||||
#[must_use]
|
||||
pub fn flip(self) -> Self {
|
||||
Self {
|
||||
min: self.max,
|
||||
max: self.min,
|
||||
}
|
||||
}
|
||||
|
||||
/// The overlap of two ranges, i.e. the range that is contained by both.
|
||||
///
|
||||
/// If the ranges do not overlap, returns a range with `span() < 0.0`.
|
||||
|
|
|
|||
Loading…
Reference in New Issue