| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/PointerEventFactory.h" | 5 #include "core/events/PointerEventFactory.h" |
| 6 | 6 |
| 7 namespace blink { | 7 namespace blink { |
| 8 | 8 |
| 9 namespace { | 9 namespace { |
| 10 | 10 |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 pointerEventInit.setPointerType(pointerTypeNameForWebPointPointerType(pointe
rType)); | 74 pointerEventInit.setPointerType(pointerTypeNameForWebPointPointerType(pointe
rType)); |
| 75 pointerEventInit.setIsPrimary(isPrimary(pointerId)); | 75 pointerEventInit.setIsPrimary(isPrimary(pointerId)); |
| 76 } | 76 } |
| 77 | 77 |
| 78 PassRefPtrWillBeRawPtr<PointerEvent> PointerEventFactory::create( | 78 PassRefPtrWillBeRawPtr<PointerEvent> PointerEventFactory::create( |
| 79 const AtomicString& mouseEventName, const PlatformMouseEvent& mouseEvent, | 79 const AtomicString& mouseEventName, const PlatformMouseEvent& mouseEvent, |
| 80 PassRefPtrWillBeRawPtr<EventTarget> relatedTarget, | 80 PassRefPtrWillBeRawPtr<EventTarget> relatedTarget, |
| 81 PassRefPtrWillBeRawPtr<AbstractView> view) | 81 PassRefPtrWillBeRawPtr<AbstractView> view) |
| 82 { | 82 { |
| 83 AtomicString pointerEventName = pointerEventNameForMouseEventName(mouseEvent
Name); | 83 AtomicString pointerEventName = pointerEventNameForMouseEventName(mouseEvent
Name); |
| 84 unsigned buttons = MouseEvent::platformModifiersToButtons(mouseEvent.modifie
rs()); | 84 unsigned buttons = MouseEvent::platformModifiersToButtons(mouseEvent.getModi
fiers()); |
| 85 PointerEventInit pointerEventInit; | 85 PointerEventInit pointerEventInit; |
| 86 | 86 |
| 87 setIdTypeButtons(pointerEventInit, mouseEvent.pointerProperties(), buttons); | 87 setIdTypeButtons(pointerEventInit, mouseEvent.pointerProperties(), buttons); |
| 88 | 88 |
| 89 pointerEventInit.setScreenX(mouseEvent.globalPosition().x()); | 89 pointerEventInit.setScreenX(mouseEvent.globalPosition().x()); |
| 90 pointerEventInit.setScreenY(mouseEvent.globalPosition().y()); | 90 pointerEventInit.setScreenY(mouseEvent.globalPosition().y()); |
| 91 pointerEventInit.setClientX(mouseEvent.position().x()); | 91 pointerEventInit.setClientX(mouseEvent.position().x()); |
| 92 pointerEventInit.setClientY(mouseEvent.position().y()); | 92 pointerEventInit.setClientY(mouseEvent.position().y()); |
| 93 if (pointerEventName == EventTypeNames::pointerdown | 93 if (pointerEventName == EventTypeNames::pointerdown |
| 94 || pointerEventName == EventTypeNames::pointerup) { | 94 || pointerEventName == EventTypeNames::pointerup) { |
| 95 pointerEventInit.setButton(mouseEvent.button()); | 95 pointerEventInit.setButton(mouseEvent.button()); |
| 96 } else { | 96 } else { |
| 97 // TODO(crbug.com/587955): We are setting NoButton for transition | 97 // TODO(crbug.com/587955): We are setting NoButton for transition |
| 98 // pointerevents should be resolved as part of this bug | 98 // pointerevents should be resolved as part of this bug |
| 99 pointerEventInit.setButton(NoButton); | 99 pointerEventInit.setButton(NoButton); |
| 100 } | 100 } |
| 101 pointerEventInit.setPressure(getPointerEventPressure( | 101 pointerEventInit.setPressure(getPointerEventPressure( |
| 102 mouseEvent.pointerProperties().force, pointerEventInit.buttons())); | 102 mouseEvent.pointerProperties().force, pointerEventInit.buttons())); |
| 103 | 103 |
| 104 UIEventWithKeyState::setFromPlatformModifiers(pointerEventInit, mouseEvent.m
odifiers()); | 104 UIEventWithKeyState::setFromPlatformModifiers(pointerEventInit, mouseEvent.g
etModifiers()); |
| 105 | 105 |
| 106 // Make sure chorded buttons fire pointermove instead of pointerup/down. | 106 // Make sure chorded buttons fire pointermove instead of pointerup/down. |
| 107 if ((pointerEventName == EventTypeNames::pointerdown | 107 if ((pointerEventName == EventTypeNames::pointerdown |
| 108 && (buttons & ~MouseEvent::buttonToButtons(mouseEvent.button())) != 0) | 108 && (buttons & ~MouseEvent::buttonToButtons(mouseEvent.button())) != 0) |
| 109 || (pointerEventName == EventTypeNames::pointerup && buttons != 0)) | 109 || (pointerEventName == EventTypeNames::pointerup && buttons != 0)) |
| 110 pointerEventName = EventTypeNames::pointermove; | 110 pointerEventName = EventTypeNames::pointermove; |
| 111 | 111 |
| 112 pointerEventInit.setBubbles( | 112 pointerEventInit.setBubbles( |
| 113 pointerEventName != EventTypeNames::pointerenter | 113 pointerEventName != EventTypeNames::pointerenter |
| 114 && pointerEventName != EventTypeNames::pointerleave); | 114 && pointerEventName != EventTypeNames::pointerleave); |
| 115 pointerEventInit.setCancelable( | 115 pointerEventInit.setCancelable( |
| 116 pointerEventName != EventTypeNames::pointerenter | 116 pointerEventName != EventTypeNames::pointerenter |
| 117 && pointerEventName != EventTypeNames::pointerleave | 117 && pointerEventName != EventTypeNames::pointerleave |
| 118 && pointerEventName != EventTypeNames::pointercancel); | 118 && pointerEventName != EventTypeNames::pointercancel); |
| 119 | 119 |
| 120 pointerEventInit.setView(view); | 120 pointerEventInit.setView(view); |
| 121 if (relatedTarget) | 121 if (relatedTarget) |
| 122 pointerEventInit.setRelatedTarget(relatedTarget); | 122 pointerEventInit.setRelatedTarget(relatedTarget); |
| 123 | 123 |
| 124 return PointerEvent::create(pointerEventName, pointerEventInit); | 124 return PointerEvent::create(pointerEventName, pointerEventInit); |
| 125 } | 125 } |
| 126 | 126 |
| 127 PassRefPtrWillBeRawPtr<PointerEvent> PointerEventFactory::create(const AtomicStr
ing& type, | 127 PassRefPtrWillBeRawPtr<PointerEvent> PointerEventFactory::create(const AtomicStr
ing& type, |
| 128 const PlatformTouchPoint& touchPoint, PlatformEvent::Modifiers modifiers, | 128 const PlatformTouchPoint& touchPoint, PlatformEvent::Modifiers modifiers, |
| 129 const double width, const double height, | 129 const double width, const double height, |
| 130 const double clientX, const double clientY) | 130 const double clientX, const double clientY) |
| 131 { | 131 { |
| 132 const PlatformTouchPoint::State pointState = touchPoint.state(); | 132 const PlatformTouchPoint::TouchState pointState = touchPoint.state(); |
| 133 | 133 |
| 134 bool pointerReleasedOrCancelled = | 134 bool pointerReleasedOrCancelled = |
| 135 pointState == PlatformTouchPoint::TouchReleased | 135 pointState == PlatformTouchPoint::TouchReleased |
| 136 || pointState == PlatformTouchPoint::TouchCancelled; | 136 || pointState == PlatformTouchPoint::TouchCancelled; |
| 137 bool pointerPressedOrReleased = | 137 bool pointerPressedOrReleased = |
| 138 pointState == PlatformTouchPoint::TouchPressed | 138 pointState == PlatformTouchPoint::TouchPressed |
| 139 || pointState == PlatformTouchPoint::TouchReleased; | 139 || pointState == PlatformTouchPoint::TouchReleased; |
| 140 | 140 |
| 141 bool isEnterOrLeave = false; | 141 bool isEnterOrLeave = false; |
| 142 | 142 |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 297 return m_pointerIdMapping.contains(pointerId); | 297 return m_pointerIdMapping.contains(pointerId); |
| 298 } | 298 } |
| 299 | 299 |
| 300 bool PointerEventFactory::isActiveButtonsState(const int pointerId) | 300 bool PointerEventFactory::isActiveButtonsState(const int pointerId) |
| 301 { | 301 { |
| 302 return m_pointerIdMapping.contains(pointerId) | 302 return m_pointerIdMapping.contains(pointerId) |
| 303 && m_pointerIdMapping.get(pointerId).isActiveButtons; | 303 && m_pointerIdMapping.get(pointerId).isActiveButtons; |
| 304 } | 304 } |
| 305 | 305 |
| 306 } // namespace blink | 306 } // namespace blink |
| OLD | NEW |