From 2e8ef8896a66a2049cd62cff64d74e3e0c27024d Mon Sep 17 00:00:00 2001 From: James Barnsley Date: Tue, 5 Sep 2017 20:25:13 +1200 Subject: [PATCH] Ignoring wheel momentum, only +/- 5% for each scroll event, fixes #100 --- src/js/components/VolumeControl.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/js/components/VolumeControl.js b/src/js/components/VolumeControl.js index 23986247..49fa5604 100755 --- a/src/js/components/VolumeControl.js +++ b/src/js/components/VolumeControl.js @@ -28,11 +28,18 @@ class VolumeControl extends React.Component{ percent = 0 } - this.props.mopidyActions.setVolume( percent ) + this.props.mopidyActions.setVolume(percent) } - handleWheel(e) { - var percent = Math.round(this.props.volume - e.deltaY/8); + handleWheel(e){ + + // Identify which direction we've scrolled (inverted) + // This is simplified and doesn't consider momentum as it varies wildly + // between browsers and devices + var direction = (e.deltaY > 0 ? -1 : 1) + var percent = this.props.volume; + + percent += direction * 5 if (percent > 100){ percent = 100 @@ -40,7 +47,7 @@ class VolumeControl extends React.Component{ percent = 0 } - this.props.mopidyActions.setVolume( percent ); + this.props.mopidyActions.setVolume(percent); e.preventDefault(); }