@@ -73,6 +73,9 @@ module.exports = function draw(gd) {
7373
7474 if ( ! sliderOpts . _commandObserver ) {
7575 sliderOpts . _commandObserver = Plots . createCommandObserver ( gd , sliderOpts . steps , function ( data ) {
76+ if ( sliderOpts . active === data . index ) return ;
77+ if ( sliderOpts . _dragging ) return ;
78+
7679 setActive ( gd , gSlider , sliderOpts , data . index , false , true ) ;
7780 } ) ;
7881 }
@@ -358,6 +361,7 @@ function handleInput(gd, sliderGroup, sliderOpts, normalizedPosition, doTransiti
358361 var quantizedPosition = Math . round ( normalizedPosition * ( sliderOpts . steps . length - 1 ) ) ;
359362
360363 if ( quantizedPosition !== sliderOpts . active ) {
364+
361365 setActive ( gd , sliderGroup , sliderOpts , quantizedPosition , true , doTransition ) ;
362366 }
363367}
@@ -382,13 +386,7 @@ function setActive(gd, sliderGroup, sliderOpts, index, doCallback, doTransition)
382386 var _step = sliderGroup . _nextMethod . step ;
383387 if ( ! _step . method ) return ;
384388
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 ) ;
392390
393391 sliderGroup . _nextMethod = null ;
394392 sliderGroup . _nextMethodRaf = null ;
@@ -410,13 +408,15 @@ function attachGripEvents(item, gd, sliderGroup, sliderOpts) {
410408
411409 var normalizedPosition = positionToNormalizedValue ( sliderOpts , d3 . mouse ( node ) [ 0 ] ) ;
412410 handleInput ( gd , sliderGroup , sliderOpts , normalizedPosition , true ) ;
411+ sliderOpts . _dragging = true ;
413412
414413 $gd . on ( 'mousemove' , function ( ) {
415414 var normalizedPosition = positionToNormalizedValue ( sliderOpts , d3 . mouse ( node ) [ 0 ] ) ;
416415 handleInput ( gd , sliderGroup , sliderOpts , normalizedPosition , false ) ;
417416 } ) ;
418417
419418 $gd . on ( 'mouseup' , function ( ) {
419+ sliderOpts . _dragging = false ;
420420 grip . call ( Color . fill , sliderOpts . bgcolor ) ;
421421 $gd . on ( 'mouseup' , null ) ;
422422 $gd . on ( 'mousemove' , null ) ;
0 commit comments