summaryrefslogtreecommitdiff
path: root/Source/WebCore/dom/WheelEvent.cpp
diff options
context:
space:
mode:
authorKonstantin Tokarev <annulen@yandex.ru>2016-08-25 19:20:41 +0300
committerKonstantin Tokarev <annulen@yandex.ru>2017-02-02 12:30:55 +0000
commit6882a04fb36642862b11efe514251d32070c3d65 (patch)
treeb7959826000b061fd5ccc7512035c7478742f7b0 /Source/WebCore/dom/WheelEvent.cpp
parentab6df191029eeeb0b0f16f127d553265659f739e (diff)
downloadqtwebkit-6882a04fb36642862b11efe514251d32070c3d65.tar.gz
Imported QtWebKit TP3 (git b57bc6801f1876c3220d5a4bfea33d620d477443)
Change-Id: I3b1d8a2808782c9f34d50240000e20cb38d3680f Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
Diffstat (limited to 'Source/WebCore/dom/WheelEvent.cpp')
-rw-r--r--Source/WebCore/dom/WheelEvent.cpp116
1 files changed, 46 insertions, 70 deletions
diff --git a/Source/WebCore/dom/WheelEvent.cpp b/Source/WebCore/dom/WheelEvent.cpp
index ea866e712..204423556 100644
--- a/Source/WebCore/dom/WheelEvent.cpp
+++ b/Source/WebCore/dom/WheelEvent.cpp
@@ -3,6 +3,7 @@
* Copyright (C) 2001 Tobias Anton (anton@stud.fbi.fh-darmstadt.de)
* Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)
* Copyright (C) 2003, 2005, 2006, 2008, 2010, 2013 Apple Inc. All rights reserved.
+ * Copyright (C) 2013 Samsung Electronics. All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -23,124 +24,99 @@
#include "config.h"
#include "WheelEvent.h"
-#include "Clipboard.h"
-#include "EventDispatcher.h"
+#include "DataTransfer.h"
#include "EventNames.h"
-#include "PlatformWheelEvent.h"
-
#include <wtf/MathExtras.h>
namespace WebCore {
+inline static unsigned determineDeltaMode(const PlatformWheelEvent& event)
+{
+ return event.granularity() == ScrollByPageWheelEvent ? WheelEvent::DOM_DELTA_PAGE : WheelEvent::DOM_DELTA_PIXEL;
+}
+
WheelEventInit::WheelEventInit()
- : wheelDeltaX(0)
- , wheelDeltaY(0)
+ : deltaX(0)
+ , deltaY(0)
+ , deltaZ(0)
, deltaMode(WheelEvent::DOM_DELTA_PIXEL)
+ , wheelDeltaX(0)
+ , wheelDeltaY(0)
{
}
WheelEvent::WheelEvent()
- : m_deltaMode(DOM_DELTA_PIXEL)
- , m_directionInvertedFromDevice(false)
+ : m_deltaX(0)
+ , m_deltaY(0)
+ , m_deltaZ(0)
+ , m_deltaMode(DOM_DELTA_PIXEL)
+ , m_initializedWithPlatformWheelEvent(false)
{
}
WheelEvent::WheelEvent(const AtomicString& type, const WheelEventInit& initializer)
: MouseEvent(type, initializer)
- , m_wheelDelta(IntPoint(initializer.wheelDeltaX, initializer.wheelDeltaY))
+ , m_wheelDelta(initializer.wheelDeltaX ? initializer.wheelDeltaX : -initializer.deltaX, initializer.wheelDeltaY ? initializer.wheelDeltaY : -initializer.deltaY)
+ , m_deltaX(initializer.deltaX ? initializer.deltaX : -initializer.wheelDeltaX)
+ , m_deltaY(initializer.deltaY ? initializer.deltaY : -initializer.wheelDeltaY)
+ , m_deltaZ(initializer.deltaZ)
, m_deltaMode(initializer.deltaMode)
+ , m_initializedWithPlatformWheelEvent(false)
{
}
-WheelEvent::WheelEvent(const FloatPoint& wheelTicks, const FloatPoint& rawDelta, unsigned deltaMode,
- PassRefPtr<AbstractView> view, const IntPoint& screenLocation, const IntPoint& pageLocation,
- bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, bool directionInvertedFromDevice, double timestamp)
- : MouseEvent(eventNames().mousewheelEvent,
- true, true, timestamp, view, 0, screenLocation.x(), screenLocation.y(),
- pageLocation.x(), pageLocation.y(),
+WheelEvent::WheelEvent(const PlatformWheelEvent& event, AbstractView* view)
+ : MouseEvent(eventNames().wheelEvent, true, true, event.timestamp(), view, 0, event.globalPosition().x(), event.globalPosition().y(), event.position().x(), event.position().y()
#if ENABLE(POINTER_LOCK)
- 0, 0,
+ , 0, 0
#endif
- ctrlKey, altKey, shiftKey, metaKey, 0, 0, 0, false)
- , m_wheelDelta(IntPoint(static_cast<int>(wheelTicks.x() * TickMultiplier), static_cast<int>(wheelTicks.y() * TickMultiplier)))
- , m_rawDelta(roundedIntPoint(rawDelta))
- , m_deltaMode(deltaMode)
- , m_directionInvertedFromDevice(directionInvertedFromDevice)
+ , event.ctrlKey(), event.altKey(), event.shiftKey(), event.metaKey(), 0, 0, 0, 0, false)
+ , m_wheelDelta(event.wheelTicksX() * TickMultiplier, event.wheelTicksY() * TickMultiplier)
+ , m_deltaX(-event.deltaX())
+ , m_deltaY(-event.deltaY())
+ , m_deltaZ(0)
+ , m_deltaMode(determineDeltaMode(event))
+ , m_wheelEvent(event)
+ , m_initializedWithPlatformWheelEvent(true)
{
}
-void WheelEvent::initWheelEvent(int rawDeltaX, int rawDeltaY, PassRefPtr<AbstractView> view,
- int screenX, int screenY, int pageX, int pageY,
- bool ctrlKey, bool altKey, bool shiftKey, bool metaKey)
+void WheelEvent::initWheelEvent(int rawDeltaX, int rawDeltaY, AbstractView* view, int screenX, int screenY, int pageX, int pageY, bool ctrlKey, bool altKey, bool shiftKey, bool metaKey)
{
if (dispatched())
return;
- initUIEvent(eventNames().mousewheelEvent, true, true, view, 0);
+ initUIEvent(eventNames().wheelEvent, true, true, view, 0);
m_screenLocation = IntPoint(screenX, screenY);
m_ctrlKey = ctrlKey;
m_altKey = altKey;
m_shiftKey = shiftKey;
m_metaKey = metaKey;
-
- // Normalize to the Windows 120 multiple
+
+ // Normalize to 120 multiple for compatibility with IE.
m_wheelDelta = IntPoint(rawDeltaX * TickMultiplier, rawDeltaY * TickMultiplier);
-
- m_rawDelta = IntPoint(rawDeltaX, rawDeltaY);
+ m_deltaX = -rawDeltaX;
+ m_deltaY = -rawDeltaY;
+
m_deltaMode = DOM_DELTA_PIXEL;
- m_directionInvertedFromDevice = false;
initCoordinates(IntPoint(pageX, pageY));
}
-void WheelEvent::initWebKitWheelEvent(int rawDeltaX, int rawDeltaY, PassRefPtr<AbstractView> view,
- int screenX, int screenY, int pageX, int pageY,
- bool ctrlKey, bool altKey, bool shiftKey, bool metaKey)
+void WheelEvent::initWebKitWheelEvent(int rawDeltaX, int rawDeltaY, AbstractView* view, int screenX, int screenY, int pageX, int pageY, bool ctrlKey, bool altKey, bool shiftKey, bool metaKey)
{
- initWheelEvent(rawDeltaX, rawDeltaY, view, screenX, screenY, pageX, pageY,
- ctrlKey, altKey, shiftKey, metaKey);
-}
-
-const AtomicString& WheelEvent::interfaceName() const
-{
- return eventNames().interfaceForWheelEvent;
-}
-
-bool WheelEvent::isMouseEvent() const
-{
- return false;
-}
-
-inline static unsigned deltaMode(const PlatformWheelEvent& event)
-{
- return event.granularity() == ScrollByPageWheelEvent ? WheelEvent::DOM_DELTA_PAGE : WheelEvent::DOM_DELTA_PIXEL;
-}
-
-PassRefPtr<WheelEventDispatchMediator> WheelEventDispatchMediator::create(const PlatformWheelEvent& event, PassRefPtr<AbstractView> view)
-{
- return adoptRef(new WheelEventDispatchMediator(event, view));
-}
-
-WheelEventDispatchMediator::WheelEventDispatchMediator(const PlatformWheelEvent& event, PassRefPtr<AbstractView> view)
-{
- if (!(event.deltaX() || event.deltaY()))
- return;
-
- setEvent(WheelEvent::create(FloatPoint(event.wheelTicksX(), event.wheelTicksY()), FloatPoint(event.deltaX(), event.deltaY()),
- deltaMode(event), view, event.globalPosition(), event.position(),
- event.ctrlKey(), event.altKey(), event.shiftKey(), event.metaKey(), event.directionInvertedFromDevice(), event.timestamp()));
+ initWheelEvent(rawDeltaX, rawDeltaY, view, screenX, screenY, pageX, pageY, ctrlKey, altKey, shiftKey, metaKey);
}
-WheelEvent* WheelEventDispatchMediator::event() const
+EventInterface WheelEvent::eventInterface() const
{
- return static_cast<WheelEvent*>(EventDispatchMediator::event());
+ return WheelEventInterfaceType;
}
-bool WheelEventDispatchMediator::dispatchEvent(EventDispatcher* dispatcher) const
+bool WheelEvent::isWheelEvent() const
{
- ASSERT(event());
- return EventDispatchMediator::dispatchEvent(dispatcher) && !event()->defaultHandled();
+ return true;
}
} // namespace WebCore