Skip to content

Commit f59028e

Browse files
committed
Dry out bounds checking for reuse.
1 parent 36ad946 commit f59028e

File tree

1 file changed

+25
-22
lines changed

1 file changed

+25
-22
lines changed

lib/matplotlib/widgets.py

+25-22
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,29 @@ def __init__(self, ax, label, valmin, valmax, valinit=0.5, valfmt='%1.2f',
370370
self.slidermin = slidermin
371371
self.slidermax = slidermax
372372
self.drag_active = False
373+
self._value_in_bounds(valinit)
374+
375+
def _value_in_bounds(self, val):
376+
""" Makes sure self.val is with given bounds."""
377+
if val <= self.valmin:
378+
if not self.closedmin:
379+
return
380+
val = self.valmin
381+
elif val >= self.valmax:
382+
if not self.closedmax:
383+
return
384+
val = self.valmax
385+
386+
if self.slidermin is not None and val <= self.slidermin.val:
387+
if not self.closedmin:
388+
return
389+
val = self.slidermin.val
390+
391+
if self.slidermax is not None and val >= self.slidermax.val:
392+
if not self.closedmax:
393+
return
394+
val = self.slidermax.val
395+
self.set_val(val)
373396

374397
def _update(self, event):
375398
"""update the slider position"""
@@ -392,29 +415,9 @@ def _update(self, event):
392415
self.drag_active = False
393416
event.canvas.release_mouse(self.ax)
394417
return
395-
396418
val = event.xdata
397-
if val <= self.valmin:
398-
if not self.closedmin:
399-
return
400-
val = self.valmin
401-
elif val >= self.valmax:
402-
if not self.closedmax:
403-
return
404-
val = self.valmax
405-
406-
if self.slidermin is not None and val <= self.slidermin.val:
407-
if not self.closedmin:
408-
return
409-
val = self.slidermin.val
410-
411-
if self.slidermax is not None and val >= self.slidermax.val:
412-
if not self.closedmax:
413-
return
414-
val = self.slidermax.val
415-
416-
self.set_val(val)
417-
419+
self._value_in_bounds(val)
420+
418421
def set_val(self, val):
419422
xy = self.poly.xy
420423
xy[2] = val, 1

0 commit comments

Comments
 (0)