Index: sources/gui/qml/components/RangeSlider.qml =================================================================== diff -u -r874a982c1983fea20307a031e09f90a91ca34d75 -r278d2553ee91cff36b356bd2ff028ff4764ded60 --- sources/gui/qml/components/RangeSlider.qml (.../RangeSlider.qml) (revision 874a982c1983fea20307a031e09f90a91ca34d75) +++ sources/gui/qml/components/RangeSlider.qml (.../RangeSlider.qml) (revision 278d2553ee91cff36b356bd2ff028ff4764ded60) @@ -274,13 +274,27 @@ } function updateMaxValue(vInStepSegments, vIsIncrementing) { + // Set the "focused" handle to be the maxium handle + curHandler = RangeSlider.HandlerOption.Max + + // In order to use pre-existing rules for handling min/max ranges, need to calculate X of new value let newMaxValue = determineNewValue(_root.maxValue, vInStepSegments, vIsIncrementing) - setMaxValue(newMaxValue) + let newX = ((newMaxValue - _root.minimum)*_root.width) / (_root.maximum - _root.minimum) + + // Update the boundary + setBound(newX) } function updateMinValue(vInStepSegments, vIsIncrementing) { + // Set the "focused" handle to be the minium handle + curHandler = RangeSlider.HandlerOption.Min + + // In order to use pre-existing rules for handling min/max ranges, need to calculate X of new value let newMinValue = determineNewValue(_root.minValue, vInStepSegments, vIsIncrementing) - setMinValue(newMinValue) + let newX = ((newMinValue - _root.minimum)*_root.width) / (_root.maximum - _root.minimum) + + // Update the boundary + setBound(newX) } /// The main range rectangle bar - This is the "highlighted" area of the slider Index: sources/gui/qml/components/Slider.qml =================================================================== diff -u -r18c39727da06312b90d15751e6a27e03c7b6742a -r278d2553ee91cff36b356bd2ff028ff4764ded60 --- sources/gui/qml/components/Slider.qml (.../Slider.qml) (revision 18c39727da06312b90d15751e6a27e03c7b6742a) +++ sources/gui/qml/components/Slider.qml (.../Slider.qml) (revision 278d2553ee91cff36b356bd2ff028ff4764ded60) @@ -83,7 +83,7 @@ if ( newValue > maximum ) newValue = maximum // Update the slider's visual value - _private.previousSliderValue = newValue // for comparison purposes + _progressRect.previousSliderValue = newValue // for comparison purposes _progressRect.value = newValue // visual value // update slider value with rounded new value @@ -267,7 +267,7 @@ // Check the cursor's current value to determine if the cursor had moved // Do not avoid type coercion, it will produce undesired results - if(newCurrentValue != _private.previousSliderValue) { + if(newCurrentValue != _progressRect.previousSliderValue) { // The cursor did move if(stepSnapOnRelease) { @@ -276,7 +276,7 @@ } // Update the slider's value since the cursor did move - _private.previousSliderValue = newCurrentValue // for comparison purposes + _progressRect.previousSliderValue = newCurrentValue // for comparison purposes _progressRect.value = newCurrentValue // visual value // update slider value with rounded new value