| Index: third_party/polymer/components/iron-dropdown/iron-dropdown-scroll-manager.html
|
| diff --git a/third_party/polymer/components/iron-dropdown/iron-dropdown-scroll-manager.html b/third_party/polymer/components/iron-dropdown/iron-dropdown-scroll-manager.html
|
| index 451ef3efc652a35f53493baa9d30df35c7b793bc..125bf2b3766502561395b375cb68367318e23a4e 100644
|
| --- a/third_party/polymer/components/iron-dropdown/iron-dropdown-scroll-manager.html
|
| +++ b/third_party/polymer/components/iron-dropdown/iron-dropdown-scroll-manager.html
|
| @@ -31,6 +31,18 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
| */
|
| var lastScrollableNodes = [];
|
|
|
| + var scrollEvents = [
|
| + // Modern `wheel` event for mouse wheel scrolling:
|
| + 'wheel',
|
| + // Older, non-standard `mousewheel` event for some FF:
|
| + 'mousewheel',
|
| + // IE:
|
| + 'DOMMouseScroll',
|
| + // Touch enabled devices
|
| + 'touchstart',
|
| + 'touchmove'
|
| + ];
|
| +
|
| /**
|
| * The IronDropdownScrollManager is intended to provide a central source
|
| * of authority and control over which elements in a document are currently
|
| @@ -199,24 +211,25 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
| _lockScrollInteractions: function() {
|
| this._boundScrollHandler = this._boundScrollHandler ||
|
| this._scrollInteractionHandler.bind(this);
|
| - // Modern `wheel` event for mouse wheel scrolling:
|
| - document.addEventListener('wheel', this._boundScrollHandler, true);
|
| - // Older, non-standard `mousewheel` event for some FF:
|
| - document.addEventListener('mousewheel', this._boundScrollHandler, true);
|
| - // IE:
|
| - document.addEventListener('DOMMouseScroll', this._boundScrollHandler, true);
|
| - // Save the lastScrollableNodes on touchstart, to be used on touchmove.
|
| - document.addEventListener('touchstart', this._boundScrollHandler, true);
|
| - // Mobile devices can scroll on touch move:
|
| - document.addEventListener('touchmove', this._boundScrollHandler, true);
|
| + for (var i = 0, l = scrollEvents.length; i < l; i++) {
|
| + // NOTE: browsers that don't support objects as third arg will
|
| + // interpret it as boolean, hence useCapture = true in this case.
|
| + document.addEventListener(scrollEvents[i], this._boundScrollHandler, {
|
| + capture: true,
|
| + passive: false
|
| + });
|
| + }
|
| },
|
|
|
| _unlockScrollInteractions: function() {
|
| - document.removeEventListener('wheel', this._boundScrollHandler, true);
|
| - document.removeEventListener('mousewheel', this._boundScrollHandler, true);
|
| - document.removeEventListener('DOMMouseScroll', this._boundScrollHandler, true);
|
| - document.removeEventListener('touchstart', this._boundScrollHandler, true);
|
| - document.removeEventListener('touchmove', this._boundScrollHandler, true);
|
| + for (var i = 0, l = scrollEvents.length; i < l; i++) {
|
| + // NOTE: browsers that don't support objects as third arg will
|
| + // interpret it as boolean, hence useCapture = true in this case.
|
| + document.removeEventListener(scrollEvents[i], this._boundScrollHandler, {
|
| + capture: true,
|
| + passive: false
|
| + });
|
| + }
|
| },
|
|
|
| /**
|
|
|