Merge pull request #1614 from rachel-fenichel/bugfix/double_events

Don't register mouse events if pointer events are supported
This commit is contained in:
Rachel Fenichel
2018-03-01 18:04:51 -08:00
committed by GitHub
2 changed files with 16 additions and 8 deletions

View File

@@ -53,6 +53,7 @@ goog.require('Blockly.WorkspaceSvg');
goog.require('Blockly.constants');
goog.require('Blockly.inject');
goog.require('Blockly.utils');
goog.require('goog.color');
goog.require('goog.userAgent');
@@ -450,10 +451,14 @@ Blockly.bindEventWithChecks_ = function(node, name, thisObject, func,
}
};
node.addEventListener(name, wrapFunc, false);
var bindData = [[node, name, wrapFunc]];
var bindData = [];
// Don't register the mouse event if an equivalent pointer event is supported.
if ((window && !window.PointerEvent) || !(name in Blockly.Touch.TOUCH_MAP)) {
node.addEventListener(name, wrapFunc, false);
bindData.push([node, name, wrapFunc]);
}
// Add equivalent touch event.
// Add equivalent touch or pointer event.
if (name in Blockly.Touch.TOUCH_MAP) {
var touchWrapFunc = function(e) {
wrapFunc(e);
@@ -495,10 +500,13 @@ Blockly.bindEvent_ = function(node, name, thisObject, func) {
}
};
node.addEventListener(name, wrapFunc, false);
var bindData = [[node, name, wrapFunc]];
// Add equivalent touch event.
var bindData = [];
// Don't register the mouse event if an equivalent pointer event is supported.
if ((window && !window.PointerEvent) || !(name in Blockly.Touch.TOUCH_MAP)) {
node.addEventListener(name, wrapFunc, false);
bindData.push([node, name, wrapFunc]);
}
// Add equivalent touch or pointer event.
if (name in Blockly.Touch.TOUCH_MAP) {
var touchWrapFunc = function(e) {
// Punt on multitouch events.

View File

@@ -48,7 +48,7 @@ Blockly.Touch.touchIdentifier_ = null;
* @type {Object}
*/
Blockly.Touch.TOUCH_MAP = {};
if (window.PointerEvent) {
if (window && window.PointerEvent) {
Blockly.Touch.TOUCH_MAP = {
'mousedown': ['pointerdown'],
'mousemove': ['pointermove'],