| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <!-- | 2 <!-- |
| 3 Copyright (c) 2014 The Chromium Authors. All rights reserved. | 3 Copyright (c) 2014 The Chromium Authors. All rights reserved. |
| 4 Use of this source code is governed by a BSD-style license that can be | 4 Use of this source code is governed by a BSD-style license that can be |
| 5 found in the LICENSE file. | 5 found in the LICENSE file. |
| 6 --> | 6 --> |
| 7 <link rel="import" href="/tracing/base/base.html"> | 7 <link rel="import" href="/tracing/base/base.html"> |
| 8 <script> | 8 <script> |
| 9 'use strict'; | 9 'use strict'; |
| 10 | 10 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 32 this.targetElement = opt_targetElement; | 32 this.targetElement = opt_targetElement; |
| 33 } | 33 } |
| 34 | 34 |
| 35 MouseTracker.prototype = { | 35 MouseTracker.prototype = { |
| 36 | 36 |
| 37 get targetElement() { | 37 get targetElement() { |
| 38 return this.targetElement_; | 38 return this.targetElement_; |
| 39 }, | 39 }, |
| 40 | 40 |
| 41 set targetElement(targetElement) { | 41 set targetElement(targetElement) { |
| 42 if (this.targetElement_) | 42 if (this.targetElement_) { |
| 43 this.targetElement_.removeEventListener('mousedown', this.onMouseDown_); | 43 this.targetElement_.removeEventListener('mousedown', this.onMouseDown_); |
| 44 } |
| 44 this.targetElement_ = targetElement; | 45 this.targetElement_ = targetElement; |
| 45 if (this.targetElement_) | 46 if (this.targetElement_) { |
| 46 this.targetElement_.addEventListener('mousedown', this.onMouseDown_); | 47 this.targetElement_.addEventListener('mousedown', this.onMouseDown_); |
| 48 } |
| 47 }, | 49 }, |
| 48 | 50 |
| 49 onMouseDown_: function(e) { | 51 onMouseDown_: function(e) { |
| 50 if (e.button !== 0) | 52 if (e.button !== 0) return true; |
| 51 return true; | |
| 52 | 53 |
| 53 e = this.remakeEvent_(e, 'mouse-tracker-start'); | 54 e = this.remakeEvent_(e, 'mouse-tracker-start'); |
| 54 this.targetElement_.dispatchEvent(e); | 55 this.targetElement_.dispatchEvent(e); |
| 55 document.addEventListener('mousemove', this.onMouseMove_); | 56 document.addEventListener('mousemove', this.onMouseMove_); |
| 56 document.addEventListener('mouseup', this.onMouseUp_); | 57 document.addEventListener('mouseup', this.onMouseUp_); |
| 57 this.targetElement_.addEventListener('blur', this.onMouseUp_); | 58 this.targetElement_.addEventListener('blur', this.onMouseUp_); |
| 58 this.savePreviousUserSelect_ = document.body.style['-webkit-user-select']; | 59 this.savePreviousUserSelect_ = document.body.style['-webkit-user-select']; |
| 59 document.body.style['-webkit-user-select'] = 'none'; | 60 document.body.style['-webkit-user-select'] = 'none'; |
| 60 e.preventDefault(); | 61 e.preventDefault(); |
| 61 return true; | 62 return true; |
| (...skipping 24 matching lines...) Expand all Loading... |
| 86 remade.clientY = e.clientY; | 87 remade.clientY = e.clientY; |
| 87 return remade; | 88 return remade; |
| 88 } | 89 } |
| 89 | 90 |
| 90 }; | 91 }; |
| 91 | 92 |
| 92 function trackMouseMovesUntilMouseUp(mouseMoveHandler, | 93 function trackMouseMovesUntilMouseUp(mouseMoveHandler, |
| 93 opt_mouseUpHandler, opt_keyUpHandler) { | 94 opt_mouseUpHandler, opt_keyUpHandler) { |
| 94 function cleanupAndDispatchToMouseUp(e) { | 95 function cleanupAndDispatchToMouseUp(e) { |
| 95 document.removeEventListener('mousemove', mouseMoveHandler); | 96 document.removeEventListener('mousemove', mouseMoveHandler); |
| 96 if (opt_keyUpHandler) | 97 if (opt_keyUpHandler) { |
| 97 document.removeEventListener('keyup', opt_keyUpHandler); | 98 document.removeEventListener('keyup', opt_keyUpHandler); |
| 99 } |
| 98 document.removeEventListener('mouseup', cleanupAndDispatchToMouseUp); | 100 document.removeEventListener('mouseup', cleanupAndDispatchToMouseUp); |
| 99 if (opt_mouseUpHandler) | 101 if (opt_mouseUpHandler) { |
| 100 opt_mouseUpHandler(e); | 102 opt_mouseUpHandler(e); |
| 103 } |
| 101 } | 104 } |
| 102 document.addEventListener('mousemove', mouseMoveHandler); | 105 document.addEventListener('mousemove', mouseMoveHandler); |
| 103 if (opt_keyUpHandler) | 106 if (opt_keyUpHandler) { |
| 104 document.addEventListener('keyup', opt_keyUpHandler); | 107 document.addEventListener('keyup', opt_keyUpHandler); |
| 108 } |
| 105 document.addEventListener('mouseup', cleanupAndDispatchToMouseUp); | 109 document.addEventListener('mouseup', cleanupAndDispatchToMouseUp); |
| 106 } | 110 } |
| 107 | 111 |
| 108 return { | 112 return { |
| 109 MouseTracker, | 113 MouseTracker, |
| 110 trackMouseMovesUntilMouseUp, | 114 trackMouseMovesUntilMouseUp, |
| 111 }; | 115 }; |
| 112 }); | 116 }); |
| 113 </script> | 117 </script> |
| OLD | NEW |