OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "core/events/PointerEvent.h" | 5 #include "core/events/PointerEvent.h" |
6 | 6 |
7 #include "core/dom/Element.h" | 7 #include "core/dom/Element.h" |
8 #include "core/events/EventDispatcher.h" | 8 #include "core/events/EventDispatcher.h" |
9 | 9 |
10 namespace blink { | 10 namespace blink { |
11 | 11 |
12 PointerEvent::PointerEvent(const AtomicString& type, | 12 PointerEvent::PointerEvent(const AtomicString& type, |
13 const PointerEventInit& initializer) | 13 const PointerEventInit& initializer) |
| 14 : PointerEvent(type, initializer, true) { |
| 15 if (initializer.hasCoalescedEventInits()) { |
| 16 for (auto coalescedEventInit : initializer.coalescedEventInits()) { |
| 17 m_coalescedEvents.append( |
| 18 new PointerEvent(type, coalescedEventInit, true)); |
| 19 } |
| 20 } |
| 21 } |
| 22 |
| 23 PointerEvent::PointerEvent(const AtomicString& type, |
| 24 const PointerEventInit& initializer, |
| 25 bool) |
14 : MouseEvent(type, initializer), | 26 : MouseEvent(type, initializer), |
15 m_pointerId(0), | 27 m_pointerId(0), |
16 m_width(0), | 28 m_width(0), |
17 m_height(0), | 29 m_height(0), |
18 m_pressure(0), | 30 m_pressure(0), |
19 m_tiltX(0), | 31 m_tiltX(0), |
20 m_tiltY(0), | 32 m_tiltY(0), |
21 m_isPrimary(false) { | 33 m_isPrimary(false) { |
22 if (initializer.hasPointerId()) | 34 if (initializer.hasPointerId()) |
23 m_pointerId = initializer.pointerId(); | 35 m_pointerId = initializer.pointerId(); |
(...skipping 18 matching lines...) Expand all Loading... |
42 } | 54 } |
43 | 55 |
44 bool PointerEvent::isPointerEvent() const { | 56 bool PointerEvent::isPointerEvent() const { |
45 return true; | 57 return true; |
46 } | 58 } |
47 | 59 |
48 EventDispatchMediator* PointerEvent::createMediator() { | 60 EventDispatchMediator* PointerEvent::createMediator() { |
49 return PointerEventDispatchMediator::create(this); | 61 return PointerEventDispatchMediator::create(this); |
50 } | 62 } |
51 | 63 |
| 64 HeapVector<Member<PointerEvent>> PointerEvent::getCoalescedEvents() const { |
| 65 return m_coalescedEvents; |
| 66 } |
| 67 |
52 DEFINE_TRACE(PointerEvent) { | 68 DEFINE_TRACE(PointerEvent) { |
| 69 visitor->trace(m_coalescedEvents); |
53 MouseEvent::trace(visitor); | 70 MouseEvent::trace(visitor); |
54 } | 71 } |
55 | 72 |
56 PointerEventDispatchMediator* PointerEventDispatchMediator::create( | 73 PointerEventDispatchMediator* PointerEventDispatchMediator::create( |
57 PointerEvent* pointerEvent) { | 74 PointerEvent* pointerEvent) { |
58 return new PointerEventDispatchMediator(pointerEvent); | 75 return new PointerEventDispatchMediator(pointerEvent); |
59 } | 76 } |
60 | 77 |
61 PointerEventDispatchMediator::PointerEventDispatchMediator( | 78 PointerEventDispatchMediator::PointerEventDispatchMediator( |
62 PointerEvent* pointerEvent) | 79 PointerEvent* pointerEvent) |
(...skipping 13 matching lines...) Expand all Loading... |
76 | 93 |
77 DCHECK(!event().target() || event().target() != event().relatedTarget()); | 94 DCHECK(!event().target() || event().target() != event().relatedTarget()); |
78 | 95 |
79 event().eventPath().adjustForRelatedTarget(dispatcher.node(), | 96 event().eventPath().adjustForRelatedTarget(dispatcher.node(), |
80 event().relatedTarget()); | 97 event().relatedTarget()); |
81 | 98 |
82 return dispatcher.dispatch(); | 99 return dispatcher.dispatch(); |
83 } | 100 } |
84 | 101 |
85 } // namespace blink | 102 } // namespace blink |
OLD | NEW |