From 7ff1063c07429fd8b33809437de4cdca5db9d762 Mon Sep 17 00:00:00 2001 From: Andrea Bogazzi Date: Mon, 13 Feb 2017 23:35:35 -0500 Subject: [PATCH] passivefalseeverywhere (#3690) * passivefalseeverywhere * Update canvas_events.mixin.js * Update dom_event.js * Update canvas.class.js --- src/canvas.class.js | 3 ++- src/mixins/canvas_events.mixin.js | 8 ++++---- src/util/dom_event.js | 9 +++++---- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/canvas.class.js b/src/canvas.class.js index 2489bff4170..1fdfb9fddfb 100644 --- a/src/canvas.class.js +++ b/src/canvas.class.js @@ -1312,7 +1312,8 @@ width: width + 'px', height: height + 'px', left: 0, - top: 0 + top: 0, + 'touch-action': 'none' }); element.width = width; element.height = height; diff --git a/src/mixins/canvas_events.mixin.js b/src/mixins/canvas_events.mixin.js index 22d7f0db485..6d4cbac1704 100644 --- a/src/mixins/canvas_events.mixin.js +++ b/src/mixins/canvas_events.mixin.js @@ -49,8 +49,8 @@ addListener(this.upperCanvasEl, 'contextmenu', this._onContextMenu); // touch events - addListener(this.upperCanvasEl, 'touchstart', this._onMouseDown); - addListener(this.upperCanvasEl, 'touchmove', this._onMouseMove); + addListener(this.upperCanvasEl, 'touchstart', this._onMouseDown, { passive: false }); + addListener(this.upperCanvasEl, 'touchmove', this._onMouseMove, { passive: false }); if (typeof eventjs !== 'undefined' && 'add' in eventjs) { eventjs.add(this.upperCanvasEl, 'gesture', this._onGesture); @@ -199,7 +199,7 @@ _onMouseDown: function (e) { this.__onMouseDown(e); - addListener(fabric.document, 'touchend', this._onMouseUp); + addListener(fabric.document, 'touchend', this._onMouseUp, { passive: false }); addListener(fabric.document, 'touchmove', this._onMouseMove, { passive: false }); removeListener(this.upperCanvasEl, 'mousemove', this._onMouseMove); @@ -229,7 +229,7 @@ removeListener(fabric.document, 'touchmove', this._onMouseMove); addListener(this.upperCanvasEl, 'mousemove', this._onMouseMove); - addListener(this.upperCanvasEl, 'touchmove', this._onMouseMove); + addListener(this.upperCanvasEl, 'touchmove', this._onMouseMove, { passive: false }); if (e.type === 'touchend') { // Wait 400ms before rebinding mousedown to prevent double triggers diff --git a/src/util/dom_event.js b/src/util/dom_event.js index 3f8639ddbb8..72db326f0f1 100644 --- a/src/util/dom_event.js +++ b/src/util/dom_event.js @@ -80,12 +80,13 @@ if (shouldUseAddListenerRemoveListener) { /** @ignore */ - addListener = function (element, eventName, handler) { - element.addEventListener(eventName, handler, false); + addListener = function (element, eventName, handler, options) { + // since ie10 or ie9 can use addEventListener but they do not support options, i need to check + element.addEventListener(eventName, handler, shouldUseAttachEventDetachEvent ? false : options); }; /** @ignore */ - removeListener = function (element, eventName, handler) { - element.removeEventListener(eventName, handler, false); + removeListener = function (element, eventName, handler, options) { + element.removeEventListener(eventName, handler, shouldUseAttachEventDetachEvent ? false : options); }; }