@@ -813,7 +813,10 @@ def _update_val_from_pos(self, pos):
813
813
val = self ._max_in_bounds (pos )
814
814
self .set_max (val )
815
815
if self ._active_handle :
816
- self ._active_handle .set_xdata ([val ])
816
+ if self .orientation == "vertical" :
817
+ self ._active_handle .set_ydata ([val ])
818
+ else :
819
+ self ._active_handle .set_xdata ([val ])
817
820
818
821
def _update (self , event ):
819
822
"""Update the slider position."""
@@ -835,12 +838,19 @@ def _update(self, event):
835
838
self ._active_handle = None
836
839
return
837
840
838
- # determine which handle was grabbed
839
- handle = self ._handles [
840
- np .argmin (
841
+ if self .orientation == "vertical" :
842
+ # determine which handle was grabbed
843
+ event_handle = np .argmin (
844
+ np .abs ([h .get_ydata ()[0 ] - event .ydata for h in self ._handles ])
845
+ )
846
+ handle = self ._handles [event_handle ]
847
+ else :
848
+ # determine which handle was grabbed
849
+ event_handle = np .argmin (
841
850
np .abs ([h .get_xdata ()[0 ] - event .xdata for h in self ._handles ])
842
851
)
843
- ]
852
+ handle = self ._handles [event_handle ]
853
+
844
854
# these checks ensure smooth behavior if the handles swap which one
845
855
# has a higher value. i.e. if one is dragged over and past the other.
846
856
if handle is not self ._active_handle :
@@ -904,14 +914,22 @@ def set_val(self, val):
904
914
xy [2 ] = .75 , val [1 ]
905
915
xy [3 ] = .75 , val [0 ]
906
916
xy [4 ] = .25 , val [0 ]
917
+
918
+ self ._handles [0 ].set_ydata ([val [0 ]])
919
+ self ._handles [1 ].set_ydata ([val [1 ]])
907
920
else :
908
921
xy [0 ] = val [0 ], .25
909
922
xy [1 ] = val [0 ], .75
910
923
xy [2 ] = val [1 ], .75
911
924
xy [3 ] = val [1 ], .25
912
925
xy [4 ] = val [0 ], .25
926
+
927
+ self ._handles [0 ].set_xdata ([val [0 ]])
928
+ self ._handles [1 ].set_xdata ([val [1 ]])
929
+
913
930
self .poly .xy = xy
914
931
self .valtext .set_text (self ._format (val ))
932
+
915
933
if self .drawon :
916
934
self .ax .figure .canvas .draw_idle ()
917
935
self .val = val
0 commit comments