diff --git a/app/widget/slider/sliderbase.cpp b/app/widget/slider/sliderbase.cpp index ccf1b09b4..9a174a565 100644 --- a/app/widget/slider/sliderbase.cpp +++ b/app/widget/slider/sliderbase.cpp @@ -121,7 +121,7 @@ void SliderBase::ForceLabelUpdate() const QVariant &SliderBase::Value() const { if (IsDragging()) { - return temp_dragged_value_; + return clamped_temp_dragged_value_; } return value_; @@ -288,22 +288,17 @@ void SliderBase::LadderDragged(int value, double multiplier) temp_dragged_value_ = drag_val; } - QVariant clamped = ClampValue(temp_dragged_value_); + clamped_temp_dragged_value_ = ClampValue(temp_dragged_value_); - if (clamped != temp_dragged_value_) { - temp_dragged_value_ = clamped; - dragged_diff_ = temp_dragged_value_.toDouble() - value_.toDouble(); - } + UpdateLabel(clamped_temp_dragged_value_); - UpdateLabel(temp_dragged_value_); - - drag_ladder_->SetValue(ValueToString(temp_dragged_value_)); + drag_ladder_->SetValue(ValueToString(clamped_temp_dragged_value_)); if (!Config::Current()[QStringLiteral("UseSliderLadders")].toBool()) { RepositionLadder(); } - emit ValueChanged(temp_dragged_value_); + emit ValueChanged(clamped_temp_dragged_value_); break; } } @@ -322,10 +317,10 @@ void SliderBase::LadderReleased() // No-op break; case kInteger: - SetValue(temp_dragged_value_.toInt()); + SetValue(clamped_temp_dragged_value_.toInt()); break; case kFloat: - SetValue(temp_dragged_value_.toDouble()); + SetValue(clamped_temp_dragged_value_.toDouble()); break; } diff --git a/app/widget/slider/sliderbase.h b/app/widget/slider/sliderbase.h index 6a4b83ddc..5d5a9fc95 100644 --- a/app/widget/slider/sliderbase.h +++ b/app/widget/slider/sliderbase.h @@ -117,6 +117,7 @@ private: double dragged_diff_; QVariant temp_dragged_value_; + QVariant clamped_temp_dragged_value_; QVariant offset_;