From e8d8798ecf670701be3f1fcf1d63063dd660b965 Mon Sep 17 00:00:00 2001 From: Neil Fraser Date: Wed, 5 Jun 2019 17:01:32 -0700 Subject: [PATCH] Remove goog.events.BrowserFeature dependency. --- core/scrollbar.js | 4 ++-- core/toolbox.js | 3 +-- core/touch.js | 15 +++++++++++++-- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/core/scrollbar.js b/core/scrollbar.js index 116d6df67..42892673e 100644 --- a/core/scrollbar.js +++ b/core/scrollbar.js @@ -27,9 +27,9 @@ goog.provide('Blockly.Scrollbar'); goog.provide('Blockly.ScrollbarPair'); +goog.require('Blockly.Touch'); goog.require('Blockly.utils'); -goog.require('goog.events.BrowserFeature'); goog.require('goog.math.Coordinate'); @@ -303,7 +303,7 @@ Blockly.Scrollbar.prototype.containerVisible_ = true; * Scrollbars should be larger on touch devices. */ Blockly.Scrollbar.scrollbarThickness = 15; -if (goog.events.BrowserFeature.TOUCH_ENABLED) { +if (Blockly.Touch.TOUCH_ENABLED) { Blockly.Scrollbar.scrollbarThickness = 25; } diff --git a/core/toolbox.js b/core/toolbox.js index 661535cb5..dbfdad801 100644 --- a/core/toolbox.js +++ b/core/toolbox.js @@ -35,7 +35,6 @@ goog.require('Blockly.utils'); goog.require('Blockly.VerticalFlyout'); goog.require('goog.events'); -goog.require('goog.events.BrowserFeature'); goog.require('goog.events.EventType'); goog.require('goog.html.SafeHtml'); goog.require('goog.math.Rect'); @@ -600,7 +599,7 @@ Blockly.Toolbox.TreeControl.prototype.enterDocument = function() { Blockly.Toolbox.TreeControl.superClass_.enterDocument.call(this); // Add touch handler. - if (goog.events.BrowserFeature.TOUCH_ENABLED) { + if (Blockly.Touch.TOUCH_ENABLED) { var el = this.getElement(); Blockly.bindEventWithChecks_(el, goog.events.EventType.TOUCHEND, this, this.handleTouchEvent_); diff --git a/core/touch.js b/core/touch.js index 9ca395b30..052128cde 100644 --- a/core/touch.js +++ b/core/touch.js @@ -32,8 +32,19 @@ goog.provide('Blockly.Touch'); goog.require('Blockly.utils'); -goog.require('goog.events.BrowserFeature'); +/** + * Whether touch is enabled in the browser. + * Copied from Closure's goog.events.BrowserFeature.TOUCH_ENABLED + */ +Blockly.Touch.TOUCH_ENABLED = + ('ontouchstart' in Blockly.utils.global || + !!(Blockly.utils.global['document'] && document.documentElement && + 'ontouchstart' in document.documentElement) || + // IE10 uses non-standard touch events, so it has a different check. + !!(Blockly.utils.global['navigator'] && + (Blockly.utils.global['navigator']['maxTouchPoints'] || + Blockly.utils.global['navigator']['msMaxTouchPoints']))) /** * Which touch events are we currently paying attention to? @@ -60,7 +71,7 @@ if (Blockly.utils.global['PointerEvent']) { 'touchend': ['pointerup'], 'touchcancel': ['pointercancel'] }; -} else if (goog.events.BrowserFeature.TOUCH_ENABLED) { +} else if (Blockly.Touch.TOUCH_ENABLED) { Blockly.Touch.TOUCH_MAP = { 'mousedown': ['touchstart'], 'mousemove': ['touchmove'],