| Index: Source/core/events/MouseEvent.cpp
|
| diff --git a/Source/core/events/MouseEvent.cpp b/Source/core/events/MouseEvent.cpp
|
| index b875392efae6270299157517467d31203ea4265d..bdfdd1f799e9516d305c63a3674dab75d45c1ad7 100644
|
| --- a/Source/core/events/MouseEvent.cpp
|
| +++ b/Source/core/events/MouseEvent.cpp
|
| @@ -40,6 +40,7 @@ MouseEventInit::MouseEventInit()
|
| , shiftKey(false)
|
| , metaKey(false)
|
| , button(0)
|
| + , buttons(0)
|
| , relatedTarget(nullptr)
|
| {
|
| }
|
| @@ -61,24 +62,27 @@ PassRefPtrWillBeRawPtr<MouseEvent> MouseEvent::create(const AtomicString& eventT
|
| eventType, isBubbling, isCancelable, view,
|
| detail, event.globalPosition().x(), event.globalPosition().y(), event.position().x(), event.position().y(),
|
| event.movementDelta().x(), event.movementDelta().y(),
|
| - event.ctrlKey(), event.altKey(), event.shiftKey(), event.metaKey(), event.button(),
|
| + event.ctrlKey(), event.altKey(), event.shiftKey(), event.metaKey(), event.button(), event.buttons(),
|
| relatedTarget, nullptr, false, event.syntheticEventType());
|
| }
|
|
|
| PassRefPtrWillBeRawPtr<MouseEvent> MouseEvent::create(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtrWillBeRawPtr<AbstractView> view,
|
| int detail, int screenX, int screenY, int pageX, int pageY,
|
| int movementX, int movementY,
|
| - bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, unsigned short button,
|
| + bool ctrlKey, bool altKey, bool shiftKey, bool metaKey,
|
| + unsigned short button, unsigned short buttons,
|
| PassRefPtrWillBeRawPtr<EventTarget> relatedTarget, PassRefPtrWillBeRawPtr<DataTransfer> dataTransfer, bool isSimulated, PlatformMouseEvent::SyntheticEventType syntheticEventType)
|
| {
|
| return adoptRefWillBeNoop(new MouseEvent(type, canBubble, cancelable, view,
|
| detail, screenX, screenY, pageX, pageY,
|
| movementX, movementY,
|
| - ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget, dataTransfer, isSimulated, syntheticEventType));
|
| + ctrlKey, altKey, shiftKey, metaKey, button, buttons,
|
| + relatedTarget, dataTransfer, isSimulated, syntheticEventType));
|
| }
|
|
|
| MouseEvent::MouseEvent()
|
| : m_button(0)
|
| + , m_buttons(0)
|
| , m_buttonDown(false)
|
| {
|
| }
|
| @@ -87,13 +91,14 @@ MouseEvent::MouseEvent(const AtomicString& eventType, bool canBubble, bool cance
|
| int detail, int screenX, int screenY, int pageX, int pageY,
|
| int movementX, int movementY,
|
| bool ctrlKey, bool altKey, bool shiftKey, bool metaKey,
|
| - unsigned short button, PassRefPtrWillBeRawPtr<EventTarget> relatedTarget,
|
| + unsigned short button, unsigned short buttons, PassRefPtrWillBeRawPtr<EventTarget> relatedTarget,
|
| PassRefPtrWillBeRawPtr<DataTransfer> dataTransfer, bool isSimulated, PlatformMouseEvent::SyntheticEventType syntheticEventType)
|
| : MouseRelatedEvent(eventType, canBubble, cancelable, view, detail, IntPoint(screenX, screenY),
|
| IntPoint(pageX, pageY),
|
| IntPoint(movementX, movementY),
|
| ctrlKey, altKey, shiftKey, metaKey, isSimulated)
|
| , m_button(button == (unsigned short)-1 ? 0 : button)
|
| + , m_buttons(buttons)
|
| , m_buttonDown(button != (unsigned short)-1)
|
| , m_relatedTarget(relatedTarget)
|
| , m_dataTransfer(dataTransfer)
|
| @@ -107,6 +112,7 @@ MouseEvent::MouseEvent(const AtomicString& eventType, const MouseEventInit& init
|
| IntPoint(0 /* movementX */, 0 /* movementY */),
|
| initializer.ctrlKey, initializer.altKey, initializer.shiftKey, initializer.metaKey, false /* isSimulated */)
|
| , m_button(initializer.button == (unsigned short)-1 ? 0 : initializer.button)
|
| + , m_buttons(initializer.buttons)
|
| , m_buttonDown(initializer.button != (unsigned short)-1)
|
| , m_relatedTarget(initializer.relatedTarget)
|
| , m_dataTransfer(nullptr)
|
| @@ -205,7 +211,7 @@ SimulatedMouseEvent::~SimulatedMouseEvent()
|
| }
|
|
|
| SimulatedMouseEvent::SimulatedMouseEvent(const AtomicString& eventType, PassRefPtrWillBeRawPtr<AbstractView> view, PassRefPtrWillBeRawPtr<Event> underlyingEvent)
|
| - : MouseEvent(eventType, true, true, view, 0, 0, 0, 0, 0, 0, 0, false, false, false, false, 0,
|
| + : MouseEvent(eventType, true, true, view, 0, 0, 0, 0, 0, 0, 0, false, false, false, false, 0, 0,
|
| nullptr, nullptr, true, PlatformMouseEvent::RealOrIndistinguishable)
|
| {
|
| if (UIEventWithKeyState* keyStateEvent = findEventWithKeyState(underlyingEvent.get())) {
|
| @@ -272,9 +278,9 @@ bool MouseEventDispatchMediator::dispatchEvent(EventDispatcher* dispatcher) cons
|
| // as a separate event in other DOM-compliant browsers like Firefox, and so we do the same.
|
| RefPtrWillBeRawPtr<MouseEvent> doubleClickEvent = MouseEvent::create();
|
| doubleClickEvent->initMouseEvent(EventTypeNames::dblclick, event()->bubbles(), event()->cancelable(), event()->view(),
|
| - event()->detail(), event()->screenX(), event()->screenY(), event()->clientX(), event()->clientY(),
|
| - event()->ctrlKey(), event()->altKey(), event()->shiftKey(), event()->metaKey(),
|
| - event()->button(), relatedTarget);
|
| + event()->detail(), event()->screenX(), event()->screenY(), event()->clientX(), event()->clientY(),
|
| + event()->ctrlKey(), event()->altKey(), event()->shiftKey(), event()->metaKey(),
|
| + event()->button(), relatedTarget);
|
| if (event()->defaultHandled())
|
| doubleClickEvent->setDefaultHandled();
|
| EventDispatcher::dispatchEvent(dispatcher->node(), MouseEventDispatchMediator::create(doubleClickEvent));
|
|
|