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 |