diff --git a/core/input/mouse.js b/core/input/mouse.js index 82ea335a..4d015669 100644 --- a/core/input/mouse.js +++ b/core/input/mouse.js @@ -8,7 +8,6 @@ import * as Log from '../util/logging.js'; import { setCapture, stopEvent, getPointerEvent } from '../util/events.js'; const WHEEL_STEP = 10; // Delta threshold for a mouse wheel step -const WHEEL_STEP_TIMEOUT = 50; // ms const WHEEL_LINE_HEIGHT = 19; export default class Mouse { @@ -16,8 +15,6 @@ export default class Mouse { this._target = target || document; this._pos = null; - this._wheelStepXTimer = null; - this._wheelStepYTimer = null; this._accumulatedWheelDeltaX = 0; this._accumulatedWheelDeltaY = 0; @@ -102,16 +99,7 @@ export default class Mouse { this._accumulatedWheelDeltaY = 0; } - _resetWheelStepTimers() { - window.clearTimeout(this._wheelStepXTimer); - window.clearTimeout(this._wheelStepYTimer); - this._wheelStepXTimer = null; - this._wheelStepYTimer = null; - } - _handleMouseWheel(e) { - this._resetWheelStepTimers(); - this._updateMousePosition(e); let dX = e.deltaX; @@ -136,17 +124,9 @@ export default class Mouse { // after a timeout. if (Math.abs(this._accumulatedWheelDeltaX) > WHEEL_STEP) { this._generateWheelStepX(); - } else { - this._wheelStepXTimer = - window.setTimeout(this._generateWheelStepX.bind(this), - WHEEL_STEP_TIMEOUT); } if (Math.abs(this._accumulatedWheelDeltaY) > WHEEL_STEP) { this._generateWheelStepY(); - } else { - this._wheelStepYTimer = - window.setTimeout(this._generateWheelStepY.bind(this), - WHEEL_STEP_TIMEOUT); } stopEvent(e); @@ -214,8 +194,6 @@ export default class Mouse { ungrab() { const t = this._target; - this._resetWheelStepTimers(); - t.removeEventListener('mousedown', this._eventHandlers.mousedown); t.removeEventListener('mouseup', this._eventHandlers.mouseup); t.removeEventListener('mousemove', this._eventHandlers.mousemove); diff --git a/tests/test.mouse.js b/tests/test.mouse.js index 8830c4be..9e06ff26 100644 --- a/tests/test.mouse.js +++ b/tests/test.mouse.js @@ -90,9 +90,6 @@ describe('Mouse Event Handling', function () { describe('Accumulate mouse wheel events with small delta', function () { - beforeEach(function () { this.clock = sinon.useFakeTimers(); }); - afterEach(function () { this.clock.restore(); }); - it('should accumulate wheel events if small enough', function () { const mouse = new Mouse(target); mouse.onmousebutton = sinon.spy(); @@ -100,7 +97,6 @@ describe('Mouse Event Handling', function () { mouse._handleMouseWheel(mouseevent( 'mousewheel', { clientX: 18, clientY: 40, deltaX: 4, deltaY: 0, deltaMode: 0 })); - this.clock.tick(10); mouse._handleMouseWheel(mouseevent( 'mousewheel', { clientX: 18, clientY: 40, deltaX: 4, deltaY: 0, deltaMode: 0 })); @@ -108,14 +104,12 @@ describe('Mouse Event Handling', function () { // threshold is 10 expect(mouse._accumulatedWheelDeltaX).to.be.equal(8); - this.clock.tick(10); mouse._handleMouseWheel(mouseevent( 'mousewheel', { clientX: 18, clientY: 40, deltaX: 4, deltaY: 0, deltaMode: 0 })); expect(mouse.onmousebutton).to.have.callCount(2); // mouse down and up - this.clock.tick(10); mouse._handleMouseWheel(mouseevent( 'mousewheel', { clientX: 18, clientY: 40, deltaX: 4, deltaY: 9, deltaMode: 0 })); @@ -133,11 +127,9 @@ describe('Mouse Event Handling', function () { mouse._handleMouseWheel(mouseevent( 'mousewheel', { clientX: 18, clientY: 40, deltaX: 11, deltaY: 0, deltaMode: 0 })); - this.clock.tick(10); mouse._handleMouseWheel(mouseevent( 'mousewheel', { clientX: 18, clientY: 40, deltaX: 0, deltaY: 70, deltaMode: 0 })); - this.clock.tick(10); mouse._handleMouseWheel(mouseevent( 'mousewheel', { clientX: 18, clientY: 40, deltaX: 400, deltaY: 400, deltaMode: 0 })); @@ -145,18 +137,6 @@ describe('Mouse Event Handling', function () { expect(mouse.onmousebutton).to.have.callCount(8); // mouse down and up }); - it('should send even small wheel events after a timeout', function () { - const mouse = new Mouse(target); - mouse.onmousebutton = sinon.spy(); - - mouse._handleMouseWheel(mouseevent( - 'mousewheel', { clientX: 18, clientY: 40, - deltaX: 1, deltaY: 0, deltaMode: 0 })); - this.clock.tick(51); // timeout on 50 ms - - expect(mouse.onmousebutton).to.have.callCount(2); // mouse down and up - }); - it('should account for non-zero deltaMode', function () { const mouse = new Mouse(target); mouse.onmousebutton = sinon.spy(); @@ -165,8 +145,6 @@ describe('Mouse Event Handling', function () { 'mousewheel', { clientX: 18, clientY: 40, deltaX: 0, deltaY: 2, deltaMode: 1 })); - this.clock.tick(10); - mouse._handleMouseWheel(mouseevent( 'mousewheel', { clientX: 18, clientY: 40, deltaX: 1, deltaY: 0, deltaMode: 2 }));