Skip to content

Commit

Permalink
Fix the slider skin end position
Browse files Browse the repository at this point in the history
  • Loading branch information
JD557 committed Nov 23, 2023
1 parent c0b1f3a commit 6a7c35c
Showing 1 changed file with 10 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,19 @@ object SliderSkin extends DefaultSkin:
val steps = (max - min) + 1
val sliderRect =
if (area.w > area.h)
val deltaX = delta * sliderArea.w / steps
Rect(0, 0, math.max(minSliderSize, sliderArea.w / steps), sliderArea.h)
val sliderSize = math.max(minSliderSize, sliderArea.w / steps)
val maxX =
(steps + 1) * sliderArea.w / steps - sliderSize // Correction for when the slider hits the min size
val deltaX = delta * maxX / steps
Rect(0, 0, sliderSize, sliderArea.h)
.centerAt(0, sliderArea.centerY)
.copy(x = sliderArea.x + deltaX)
else
val deltaY = delta * sliderArea.h / steps
Rect(0, 0, sliderArea.w, math.max(minSliderSize, sliderArea.h / steps))
val sliderSize = math.max(minSliderSize, sliderArea.h / steps)
val maxY =
(steps + 1) * sliderArea.h / steps - sliderSize // Correction for when the slider hits the min size
val deltaY = delta * maxY / steps
Rect(0, 0, sliderArea.w, sliderSize)
.centerAt(sliderArea.centerX, 0)
.copy(y = sliderArea.y + deltaY)
rectangle(area, colorScheme.secondary)
Expand Down

0 comments on commit 6a7c35c

Please sign in to comment.