diff --git a/src/ui/Slider.js b/src/ui/Slider.js index c179a8ee82..e6c24e95dc 100644 --- a/src/ui/Slider.js +++ b/src/ui/Slider.js @@ -5,13 +5,14 @@ var yo = require('yo-yo') var ui = require('../helpers/ui') class Slider { - constructor (_traceManager) { + constructor (_traceManager, _stepOverride) { this.event = new EventManager() this.traceManager = _traceManager this.max this.disabled = true this.view this.solidityMode = false + this.stepOverride = _stepOverride this.previousValue = null } @@ -47,19 +48,17 @@ class Slider { onChange (event) { var value = parseInt(this.view.querySelector('#slider').value) + if (this.stepOverride) { + value = this.stepOverride(value) + this.setValue(value) + } if (value === this.previousValue) return this.previousValue = value this.event.trigger('moved', [value]) } setValue (value) { - var slider = this.view.querySelector('#slider') - var diff = value - slider.value - if (diff > 0) { - slider.stepUp(diff) - } else { - slider.stepDown(Math.abs(diff)) - } + this.view.querySelector('#slider').value = value } setReducedTrace (trace) { diff --git a/src/ui/StepManager.js b/src/ui/StepManager.js index 3b92134991..22505ce4a8 100644 --- a/src/ui/StepManager.js +++ b/src/ui/StepManager.js @@ -24,7 +24,9 @@ function StepManager (_parent, _traceManager) { }) }) - this.slider = new Slider(this.traceManager) + this.slider = new Slider(this.traceManager, (step) => { + return this.solidityMode ? this.resolveToReducedTrace(step, 0) : step + }) this.slider.event.register('moved', this, function (step) { self.sliderMoved(step) }) @@ -108,10 +110,6 @@ StepManager.prototype.sliderMoved = function (step) { if (!this.traceManager.inRange(step)) { return } - if (this.solidityMode) { - step = this.resolveToReducedTrace(step, 0) - this.slider.setValue(step) - } this.changeState(step) }