| Index: third_party/polymer/v1_0/components-chromium/iron-scroll-target-behavior/iron-scroll-target-behavior-extracted.js
|
| diff --git a/third_party/polymer/v1_0/components-chromium/iron-scroll-target-behavior/iron-scroll-target-behavior-extracted.js b/third_party/polymer/v1_0/components-chromium/iron-scroll-target-behavior/iron-scroll-target-behavior-extracted.js
|
| index 7f3da40051d844bb6c1f67892b7fdaa74aff46ef..a0eb5395ade23a2ef37c922d100082a83666c470 100644
|
| --- a/third_party/polymer/v1_0/components-chromium/iron-scroll-target-behavior/iron-scroll-target-behavior-extracted.js
|
| +++ b/third_party/polymer/v1_0/components-chromium/iron-scroll-target-behavior/iron-scroll-target-behavior-extracted.js
|
| @@ -59,15 +59,18 @@
|
| '_scrollTargetChanged(scrollTarget, isAttached)'
|
| ],
|
|
|
| + /**
|
| + * True if the event listener should be installed.
|
| + */
|
| + _shouldHaveListener: true,
|
| +
|
| _scrollTargetChanged: function(scrollTarget, isAttached) {
|
| var eventTarget;
|
|
|
| if (this._oldScrollTarget) {
|
| - eventTarget = this._oldScrollTarget === this._doc ? window : this._oldScrollTarget;
|
| - eventTarget.removeEventListener('scroll', this._boundScrollHandler);
|
| + this._toggleScrollListener(false, this._oldScrollTarget);
|
| this._oldScrollTarget = null;
|
| }
|
| -
|
| if (!isAttached) {
|
| return;
|
| }
|
| @@ -83,11 +86,10 @@
|
|
|
| } else if (this._isValidScrollTarget()) {
|
|
|
| - eventTarget = scrollTarget === this._doc ? window : scrollTarget;
|
| this._boundScrollHandler = this._boundScrollHandler || this._scrollHandler.bind(this);
|
| this._oldScrollTarget = scrollTarget;
|
| + this._toggleScrollListener(this._shouldHaveListener, scrollTarget);
|
|
|
| - eventTarget.addEventListener('scroll', this._boundScrollHandler);
|
| }
|
| },
|
|
|
| @@ -214,5 +216,29 @@
|
| */
|
| _isValidScrollTarget: function() {
|
| return this.scrollTarget instanceof HTMLElement;
|
| + },
|
| +
|
| + _toggleScrollListener: function(yes, scrollTarget) {
|
| + if (!this._boundScrollHandler) {
|
| + return;
|
| + }
|
| + var eventTarget = scrollTarget === this._doc ? window : scrollTarget;
|
| +
|
| + if (yes) {
|
| + eventTarget.addEventListener('scroll', this._boundScrollHandler);
|
| + } else {
|
| + eventTarget.removeEventListener('scroll', this._boundScrollHandler);
|
| + }
|
| + },
|
| +
|
| + /**
|
| + * Enables or disables the scroll event listener.
|
| + *
|
| + * @param {boolean} yes True to add the event, False to remove it.
|
| + */
|
| + toggleScrollListener: function(yes) {
|
| + this._shouldHaveListener = yes;
|
| + this._toggleScrollListener(yes, this.scrollTarget);
|
| }
|
| +
|
| };
|
|
|