diff --git a/app/widget/slider/base/sliderladder.cpp b/app/widget/slider/base/sliderladder.cpp index ec0700eb7..b85ed4d95 100644 --- a/app/widget/slider/base/sliderladder.cpp +++ b/app/widget/slider/base/sliderladder.cpp @@ -79,6 +79,7 @@ SliderLadder::SliderLadder(double drag_multiplier, int nb_outer_values, QString if (UsingLadders()) { drag_start_x_ = -1; + wrap_count_ = 0; } else { #if defined(Q_OS_MAC) CGAssociateMouseAndMouseCursorPosition(false); @@ -145,7 +146,7 @@ void SliderLadder::TimerUpdate() if (UsingLadders()) { - bool is_under_mouse = (now_pos >= ladder_left && now_pos <= ladder_right); + bool is_under_mouse = (now_pos >= ladder_left && now_pos <= ladder_right && wrap_count_ == 0); if (drag_start_x_ != -1 && (is_under_mouse || (drag_start_x_ < ladder_left && now_pos > ladder_right) @@ -202,8 +203,10 @@ void SliderLadder::TimerUpdate() } if (now_pos == left || now_pos == right) { if (now_pos == left) { + wrap_count_--; now_pos = right-1; } else { + wrap_count_++; now_pos = left+1; } QCursor::setPos(now_pos, QCursor::pos().y()); diff --git a/app/widget/slider/base/sliderladder.h b/app/widget/slider/base/sliderladder.h index 04ca77b20..919cccc9f 100644 --- a/app/widget/slider/base/sliderladder.h +++ b/app/widget/slider/base/sliderladder.h @@ -87,6 +87,7 @@ private: int drag_start_x_; int drag_start_y_; + int wrap_count_; QList elements_;