| Index: third_party/WebKit/Source/core/events/MouseEvent.cpp
|
| diff --git a/third_party/WebKit/Source/core/events/MouseEvent.cpp b/third_party/WebKit/Source/core/events/MouseEvent.cpp
|
| index 6d6f1cf54b48f08ee03e6a209cc1a3c249ec5df0..5d64a5f5e3706ea417a46679bf28ccade7d680b9 100644
|
| --- a/third_party/WebKit/Source/core/events/MouseEvent.cpp
|
| +++ b/third_party/WebKit/Source/core/events/MouseEvent.cpp
|
| @@ -186,6 +186,40 @@ MouseEvent::MouseEvent(
|
| bool canBubble,
|
| bool cancelable,
|
| AbstractView* abstractView,
|
| + PlatformMouseEvent::SyntheticEventType syntheticEventType,
|
| + const String& region,
|
| + const WebMouseEvent& event)
|
| + : UIEventWithKeyState(
|
| + eventType,
|
| + canBubble,
|
| + cancelable,
|
| + abstractView,
|
| + 0,
|
| + static_cast<PlatformEvent::Modifiers>(event.modifiers),
|
| + TimeTicks::FromSeconds(event.timeStampSeconds),
|
| + syntheticEventType == PlatformMouseEvent::FromTouch
|
| + ? InputDeviceCapabilities::firesTouchEventsSourceCapabilities()
|
| + : InputDeviceCapabilities::
|
| + doesntFireTouchEventsSourceCapabilities()),
|
| + m_screenLocation(event.globalX, event.globalY),
|
| + m_movementDelta(flooredIntPoint(event.movementInRootFrame())),
|
| + m_positionType(syntheticEventType == PlatformMouseEvent::Positionless
|
| + ? PositionType::Positionless
|
| + : PositionType::Position),
|
| + m_button(0),
|
| + m_buttons(platformModifiersToButtons(event.modifiers)),
|
| + m_syntheticEventType(syntheticEventType),
|
| + m_region(region) {
|
| + IntPoint rootFrameCoordinates = flooredIntPoint(event.positionInRootFrame());
|
| + initCoordinatesFromRootFrame(rootFrameCoordinates.x(),
|
| + rootFrameCoordinates.y());
|
| +}
|
| +
|
| +MouseEvent::MouseEvent(
|
| + const AtomicString& eventType,
|
| + bool canBubble,
|
| + bool cancelable,
|
| + AbstractView* abstractView,
|
| int detail,
|
| int screenX,
|
| int screenY,
|
| @@ -225,7 +259,39 @@ MouseEvent::MouseEvent(
|
| m_region(region) {
|
| if (mouseEvent)
|
| m_mouseEvent.reset(new PlatformMouseEvent(*mouseEvent));
|
| + initCoordinatesFromRootFrame(windowX, windowY);
|
| +}
|
|
|
| +MouseEvent::MouseEvent(const AtomicString& eventType,
|
| + const MouseEventInit& initializer)
|
| + : UIEventWithKeyState(eventType, initializer),
|
| + m_screenLocation(
|
| + DoublePoint(initializer.screenX(), initializer.screenY())),
|
| + m_movementDelta(
|
| + IntPoint(initializer.movementX(), initializer.movementY())),
|
| + m_positionType(PositionType::Position),
|
| + m_button(initializer.button()),
|
| + m_buttons(initializer.buttons()),
|
| + m_relatedTarget(initializer.relatedTarget()),
|
| + m_syntheticEventType(PlatformMouseEvent::RealOrIndistinguishable),
|
| + m_region(initializer.region()) {
|
| + initCoordinates(initializer.clientX(), initializer.clientY());
|
| +}
|
| +
|
| +void MouseEvent::initCoordinates(const double clientX, const double clientY) {
|
| + // Set up initial values for coordinates.
|
| + // Correct values are computed lazily, see computeRelativePosition.
|
| + m_clientLocation = DoublePoint(clientX, clientY);
|
| + m_pageLocation = m_clientLocation + DoubleSize(contentsScrollOffset(view()));
|
| +
|
| + m_layerLocation = m_pageLocation;
|
| + m_offsetLocation = m_pageLocation;
|
| +
|
| + computePageLocation();
|
| + m_hasCachedRelativePosition = false;
|
| +}
|
| +
|
| +void MouseEvent::initCoordinatesFromRootFrame(int windowX, int windowY) {
|
| DoublePoint adjustedPageLocation;
|
| DoubleSize scrollOffset;
|
|
|
| @@ -257,35 +323,6 @@ MouseEvent::MouseEvent(
|
| m_hasCachedRelativePosition = false;
|
| }
|
|
|
| -MouseEvent::MouseEvent(const AtomicString& eventType,
|
| - const MouseEventInit& initializer)
|
| - : UIEventWithKeyState(eventType, initializer),
|
| - m_screenLocation(
|
| - DoublePoint(initializer.screenX(), initializer.screenY())),
|
| - m_movementDelta(
|
| - IntPoint(initializer.movementX(), initializer.movementY())),
|
| - m_positionType(PositionType::Position),
|
| - m_button(initializer.button()),
|
| - m_buttons(initializer.buttons()),
|
| - m_relatedTarget(initializer.relatedTarget()),
|
| - m_syntheticEventType(PlatformMouseEvent::RealOrIndistinguishable),
|
| - m_region(initializer.region()) {
|
| - initCoordinates(initializer.clientX(), initializer.clientY());
|
| -}
|
| -
|
| -void MouseEvent::initCoordinates(const double clientX, const double clientY) {
|
| - // Set up initial values for coordinates.
|
| - // Correct values are computed lazily, see computeRelativePosition.
|
| - m_clientLocation = DoublePoint(clientX, clientY);
|
| - m_pageLocation = m_clientLocation + DoubleSize(contentsScrollOffset(view()));
|
| -
|
| - m_layerLocation = m_pageLocation;
|
| - m_offsetLocation = m_pageLocation;
|
| -
|
| - computePageLocation();
|
| - m_hasCachedRelativePosition = false;
|
| -}
|
| -
|
| MouseEvent::~MouseEvent() {}
|
|
|
| unsigned short MouseEvent::platformModifiersToButtons(unsigned modifiers) {
|
|
|