Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(614)

Side by Side Diff: third_party/polymer/components/iron-dropdown/iron-dropdown-scroll-manager.html

Issue 3010683002: Update Polymer components. (Closed)
Patch Set: Rebase Created 3 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 <!-- 1 <!--
2 @license 2 @license
3 Copyright (c) 2015 The Polymer Project Authors. All rights reserved. 3 Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
4 This code may only be used under the BSD style license found at http://polymer.g ithub.io/LICENSE.txt 4 This code may only be used under the BSD style license found at http://polymer.g ithub.io/LICENSE.txt
5 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt 5 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
6 The complete set of contributors may be found at http://polymer.github.io/CONTRI BUTORS.txt 6 The complete set of contributors may be found at http://polymer.github.io/CONTRI BUTORS.txt
7 Code distributed by Google as part of the polymer project is also 7 Code distributed by Google as part of the polymer project is also
8 subject to an additional IP rights grant found at http://polymer.github.io/PATEN TS.txt 8 subject to an additional IP rights grant found at http://polymer.github.io/PATEN TS.txt
9 --> 9 -->
10 10
(...skipping 13 matching lines...) Expand all
24 /** 24 /**
25 * Used to avoid computing event.path and filter scrollable nodes (better pe rf). 25 * Used to avoid computing event.path and filter scrollable nodes (better pe rf).
26 * @type {?EventTarget} 26 * @type {?EventTarget}
27 */ 27 */
28 var lastRootTarget = null; 28 var lastRootTarget = null;
29 /** 29 /**
30 * @type {!Array<Node>} 30 * @type {!Array<Node>}
31 */ 31 */
32 var lastScrollableNodes = []; 32 var lastScrollableNodes = [];
33 33
34 var scrollEvents = [
35 // Modern `wheel` event for mouse wheel scrolling:
36 'wheel',
37 // Older, non-standard `mousewheel` event for some FF:
38 'mousewheel',
39 // IE:
40 'DOMMouseScroll',
41 // Touch enabled devices
42 'touchstart',
43 'touchmove'
44 ];
45
34 /** 46 /**
35 * The IronDropdownScrollManager is intended to provide a central source 47 * The IronDropdownScrollManager is intended to provide a central source
36 * of authority and control over which elements in a document are currently 48 * of authority and control over which elements in a document are currently
37 * allowed to scroll. 49 * allowed to scroll.
38 */ 50 */
39 51
40 Polymer.IronDropdownScrollManager = { 52 Polymer.IronDropdownScrollManager = {
41 53
42 /** 54 /**
43 * The current element that defines the DOM boundaries of the 55 * The current element that defines the DOM boundaries of the
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 if (event.targetTouches) { 204 if (event.targetTouches) {
193 var touch = event.targetTouches[0]; 205 var touch = event.targetTouches[0];
194 lastTouchPosition.pageX = touch.pageX; 206 lastTouchPosition.pageX = touch.pageX;
195 lastTouchPosition.pageY = touch.pageY; 207 lastTouchPosition.pageY = touch.pageY;
196 } 208 }
197 }, 209 },
198 210
199 _lockScrollInteractions: function() { 211 _lockScrollInteractions: function() {
200 this._boundScrollHandler = this._boundScrollHandler || 212 this._boundScrollHandler = this._boundScrollHandler ||
201 this._scrollInteractionHandler.bind(this); 213 this._scrollInteractionHandler.bind(this);
202 // Modern `wheel` event for mouse wheel scrolling: 214 for (var i = 0, l = scrollEvents.length; i < l; i++) {
203 document.addEventListener('wheel', this._boundScrollHandler, true); 215 // NOTE: browsers that don't support objects as third arg will
204 // Older, non-standard `mousewheel` event for some FF: 216 // interpret it as boolean, hence useCapture = true in this case.
205 document.addEventListener('mousewheel', this._boundScrollHandler, true); 217 document.addEventListener(scrollEvents[i], this._boundScrollHandler, {
206 // IE: 218 capture: true,
207 document.addEventListener('DOMMouseScroll', this._boundScrollHandler, tr ue); 219 passive: false
208 // Save the lastScrollableNodes on touchstart, to be used on touchmove. 220 });
209 document.addEventListener('touchstart', this._boundScrollHandler, true); 221 }
210 // Mobile devices can scroll on touch move:
211 document.addEventListener('touchmove', this._boundScrollHandler, true);
212 }, 222 },
213 223
214 _unlockScrollInteractions: function() { 224 _unlockScrollInteractions: function() {
215 document.removeEventListener('wheel', this._boundScrollHandler, true); 225 for (var i = 0, l = scrollEvents.length; i < l; i++) {
216 document.removeEventListener('mousewheel', this._boundScrollHandler, tru e); 226 // NOTE: browsers that don't support objects as third arg will
217 document.removeEventListener('DOMMouseScroll', this._boundScrollHandler, true); 227 // interpret it as boolean, hence useCapture = true in this case.
218 document.removeEventListener('touchstart', this._boundScrollHandler, tru e); 228 document.removeEventListener(scrollEvents[i], this._boundScrollHandler , {
219 document.removeEventListener('touchmove', this._boundScrollHandler, true ); 229 capture: true,
230 passive: false
231 });
232 }
220 }, 233 },
221 234
222 /** 235 /**
223 * Returns true if the event causes scroll outside the current locking 236 * Returns true if the event causes scroll outside the current locking
224 * element, e.g. pointer/keyboard interactions, or scroll "leaking" 237 * element, e.g. pointer/keyboard interactions, or scroll "leaking"
225 * outside the locking element when it is already at its scroll boundaries . 238 * outside the locking element when it is already at its scroll boundaries .
226 * @param {!Event} event 239 * @param {!Event} event
227 * @return {boolean} 240 * @return {boolean}
228 * @private 241 * @private
229 */ 242 */
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
350 // Touch moves from right to left => scrolling goes right. 363 // Touch moves from right to left => scrolling goes right.
351 info.deltaX = lastTouchPosition.pageX - touch.pageX; 364 info.deltaX = lastTouchPosition.pageX - touch.pageX;
352 // Touch moves from down to up => scrolling goes down. 365 // Touch moves from down to up => scrolling goes down.
353 info.deltaY = lastTouchPosition.pageY - touch.pageY; 366 info.deltaY = lastTouchPosition.pageY - touch.pageY;
354 } 367 }
355 return info; 368 return info;
356 } 369 }
357 }; 370 };
358 })(); 371 })();
359 </script> 372 </script>
OLDNEW
« no previous file with comments | « third_party/polymer/components/iron-dropdown/bower.json ('k') | third_party/polymer/components/iron-fit-behavior/.bower.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698