X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fmenu%2Fitem%2Fslider.qc;h=b98f59bbb444f663643e9860645b820ada792052;hb=8411e8405dcb67853bc15a238932becc1aee66a9;hp=b569c3b0c4c228bec7d158f558129e21fded4f7c;hpb=1b0decb9afb829407eae763b3053a122e2ae3de6;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/menu/item/slider.qc b/qcsrc/menu/item/slider.qc index b569c3b0c..b98f59bbb 100644 --- a/qcsrc/menu/item/slider.qc +++ b/qcsrc/menu/item/slider.qc @@ -157,8 +157,12 @@ // handle dragging me.pressed = 2; - v = median(0, (pos.x - me.pressOffset - 0.5 * me.controlWidth) / (1 - me.textSpace - me.controlWidth), 1) * (me.valueMax - me.valueMin) + me.valueMin; - if (me.valueStep) v = floor(0.5 + v / me.valueStep) * me.valueStep; + float f = bound(0, (pos.x - me.pressOffset - 0.5 * me.controlWidth) / (1 - me.textSpace - me.controlWidth), 1); + v = f * (me.valueMax - me.valueMin) + me.valueMin; + // there's no need to round min and max value... also if we did, v could be set + // to an out of bounds value due to precision errors + if (f > 0 && f < 1 && me.valueStep) + v = floor(0.5 + v / me.valueStep) * me.valueStep; me.setValue_noAnim(me, v); if(me.applyButton) if(me.previousValue != me.value)