diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/controls/Private/qquickrangemodel_p_p.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/controls/Private/qquickrangemodel_p_p.h b/src/controls/Private/qquickrangemodel_p_p.h index 67f0745c0..235ba0690 100644 --- a/src/controls/Private/qquickrangemodel_p_p.h +++ b/src/controls/Private/qquickrangemodel_p_p.h @@ -93,7 +93,11 @@ public: return minimum; const qreal scale = (maximum - minimum) / posRange; - return (pos - effectivePosAtMin()) * scale + minimum; + // Avoid perverse rounding glitches when at an end: + const qreal mid = (effectivePosAtMax() + effectivePosAtMin()) * 0.5; + if (pos < mid) + return (pos - effectivePosAtMin()) * scale + minimum; + return maximum - scale * (effectivePosAtMax() - pos); } qreal publicPosition(qreal position) const; |
