@@ -73,6 +73,9 @@ module.exports = function draw(gd) {
73
73
74
74
if ( ! sliderOpts . _commandObserver ) {
75
75
sliderOpts . _commandObserver = Plots . createCommandObserver ( gd , sliderOpts . steps , function ( data ) {
76
+ if ( sliderOpts . active === data . index ) return ;
77
+ if ( sliderOpts . _dragging ) return ;
78
+
76
79
setActive ( gd , gSlider , sliderOpts , data . index , false , true ) ;
77
80
} ) ;
78
81
}
@@ -358,6 +361,7 @@ function handleInput(gd, sliderGroup, sliderOpts, normalizedPosition, doTransiti
358
361
var quantizedPosition = Math . round ( normalizedPosition * ( sliderOpts . steps . length - 1 ) ) ;
359
362
360
363
if ( quantizedPosition !== sliderOpts . active ) {
364
+
361
365
setActive ( gd , sliderGroup , sliderOpts , quantizedPosition , true , doTransition ) ;
362
366
}
363
367
}
@@ -382,13 +386,7 @@ function setActive(gd, sliderGroup, sliderOpts, index, doCallback, doTransition)
382
386
var _step = sliderGroup . _nextMethod . step ;
383
387
if ( ! _step . method ) return ;
384
388
385
- sliderOpts . _invokingCommand = true ;
386
-
387
- Plots . executeAPICommand ( gd , _step . method , _step . args ) . then ( function ( ) {
388
- sliderOpts . _invokingCommand = false ;
389
- } , function ( ) {
390
- sliderOpts . _invokingCommand = false ;
391
- } ) ;
389
+ Plots . executeAPICommand ( gd , _step . method , _step . args ) ;
392
390
393
391
sliderGroup . _nextMethod = null ;
394
392
sliderGroup . _nextMethodRaf = null ;
@@ -410,13 +408,15 @@ function attachGripEvents(item, gd, sliderGroup, sliderOpts) {
410
408
411
409
var normalizedPosition = positionToNormalizedValue ( sliderOpts , d3 . mouse ( node ) [ 0 ] ) ;
412
410
handleInput ( gd , sliderGroup , sliderOpts , normalizedPosition , true ) ;
411
+ sliderOpts . _dragging = true ;
413
412
414
413
$gd . on ( 'mousemove' , function ( ) {
415
414
var normalizedPosition = positionToNormalizedValue ( sliderOpts , d3 . mouse ( node ) [ 0 ] ) ;
416
415
handleInput ( gd , sliderGroup , sliderOpts , normalizedPosition , false ) ;
417
416
} ) ;
418
417
419
418
$gd . on ( 'mouseup' , function ( ) {
419
+ sliderOpts . _dragging = false ;
420
420
grip . call ( Color . fill , sliderOpts . bgcolor ) ;
421
421
$gd . on ( 'mouseup' , null ) ;
422
422
$gd . on ( 'mousemove' , null ) ;
0 commit comments