Skip to content

Commit

Permalink
Fixes jumping of range bar when dragging range bar in vertical range …
Browse files Browse the repository at this point in the history
…slider (#1522)
  • Loading branch information
james-d committed Nov 6, 2023
1 parent dc172e7 commit 14cd145
Showing 1 changed file with 13 additions and 4 deletions.
Expand Up @@ -83,12 +83,21 @@ public RangeSliderSkin(final RangeSlider rangeSlider) {
initRangeBar();
registerChangeListener(rangeSlider.lowValueProperty(), e -> {
positionLowThumb();
rangeBar.resizeRelocate(rangeStart, rangeBar.getLayoutY(),
rangeEnd - rangeStart, rangeBar.getHeight());
if (isHorizontal()) {
rangeBar.resizeRelocate(rangeStart, rangeBar.getLayoutY(),
rangeEnd - rangeStart, rangeBar.getHeight());
} else {
rangeBar.resize(rangeBar.getWidth(), rangeEnd - rangeStart);
}
});
registerChangeListener(rangeSlider.highValueProperty(), e -> {
positionHighThumb();
rangeBar.resize(rangeEnd-rangeStart, rangeBar.getHeight());
if (isHorizontal()) {
rangeBar.resize(rangeEnd - rangeStart, rangeBar.getHeight());
} else {
rangeBar.resizeRelocate(rangeBar.getLayoutX(), rangeStart,
rangeBar.getWidth(), rangeEnd - rangeStart);
}
});
registerChangeListener(rangeSlider.minProperty(), e -> {
if (showTickMarks && tickLine != null) {
Expand Down Expand Up @@ -402,7 +411,7 @@ private void positionHighThumb() {
double y = orientation ? lowThumb.getLayoutY() : (getSkinnable().getInsets().getTop() + trackLength) - trackLength * ((slider.getHighValue() - slider.getMin()) / (getMaxMinusMinNoZero()));
highThumb.setLayoutX(x);
highThumb.setLayoutY(y);
if (orientation) rangeEnd = x; else rangeStart = y + thumbWidth;
if (orientation) rangeEnd = x; else rangeStart = y + thumbHeight;
}

@Override protected void layoutChildren(final double x, final double y,
Expand Down

0 comments on commit 14cd145

Please sign in to comment.