Merge pull request #4028 from zeeMonkeez/fix_slider_max

Fix: Slider.value may exceed Slider.max
This commit is contained in:
matham 2016-02-24 17:11:53 -05:00
commit 80fadb1b3f
1 changed files with 3 additions and 2 deletions

View File

@ -117,13 +117,14 @@ class Slider(Widget):
def set_norm_value(self, value): def set_norm_value(self, value):
vmin = self.min vmin = self.min
vmax = self.max
step = self.step step = self.step
val = value * (self.max - vmin) + vmin val = min(value * (vmax - vmin) + vmin, vmax)
if step == 0: if step == 0:
self.value = val self.value = val
else: else:
self.value = min(round((val - vmin) / step) * step + vmin, self.value = min(round((val - vmin) / step) * step + vmin,
self.max) vmax)
value_normalized = AliasProperty(get_norm_value, set_norm_value, value_normalized = AliasProperty(get_norm_value, set_norm_value,
bind=('value', 'min', 'max', 'step')) bind=('value', 'min', 'max', 'step'))
'''Normalized value inside the :attr:`range` (min/max) to 0-1 range:: '''Normalized value inside the :attr:`range` (min/max) to 0-1 range::