summaryrefslogtreecommitdiffstats
path: root/WebCore
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore')
-rw-r--r--WebCore/dom/Event.h4
-rw-r--r--WebCore/page/EventHandler.cpp15
-rw-r--r--WebCore/platform/PlatformTouchEvent.h6
-rw-r--r--WebCore/platform/android/PlatformTouchEventAndroid.cpp4
-rw-r--r--WebCore/plugins/android/PluginViewAndroid.cpp6
5 files changed, 29 insertions, 6 deletions
diff --git a/WebCore/dom/Event.h b/WebCore/dom/Event.h
index 4624663..9b55bb8 100644
--- a/WebCore/dom/Event.h
+++ b/WebCore/dom/Event.h
@@ -153,6 +153,10 @@ namespace WebCore {
bool createdByDOM() const { return m_createdByDOM; }
void setCreatedByDOM(bool createdByDOM) { m_createdByDOM = createdByDOM; }
+#if PLATFORM(ANDROID)
+ void setCreateTime(DOMTimeStamp time) { m_createTime = time; }
+#endif
+
protected:
Event();
Event(const AtomicString& type, bool canBubble, bool cancelable);
diff --git a/WebCore/page/EventHandler.cpp b/WebCore/page/EventHandler.cpp
index cb3bca6..bdcd6aa 100644
--- a/WebCore/page/EventHandler.cpp
+++ b/WebCore/page/EventHandler.cpp
@@ -2662,7 +2662,9 @@ bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event)
m_firstTouchPagePos.x(), m_firstTouchPagePos.y(),
event.ctrlKey(), event.altKey(), event.shiftKey(),
event.metaKey());
-
+#if PLATFORM(ANDROID)
+ cancelEv->setCreateTime(static_cast<DOMTimeStamp>(event.eventTime()));
+#endif
ExceptionCode ec = 0;
m_touchEventTarget->dispatchEvent(cancelEv.get(), ec);
defaultPrevented |= cancelEv->defaultPrevented();
@@ -2677,6 +2679,9 @@ bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event)
m_firstTouchPagePos.x(), m_firstTouchPagePos.y(),
event.ctrlKey(), event.altKey(), event.shiftKey(),
event.metaKey());
+#if PLATFORM(ANDROID)
+ endEv->setCreateTime(static_cast<DOMTimeStamp>(event.eventTime()));
+#endif
ExceptionCode ec = 0;
m_touchEventTarget->dispatchEvent(endEv.get(), ec);
#if PLATFORM(ANDROID)
@@ -2703,6 +2708,7 @@ bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event)
m_firstTouchPagePos.x(), m_firstTouchPagePos.y(),
event.ctrlKey(), event.altKey(), event.shiftKey(),
event.metaKey());
+ longpressEv->setCreateTime(static_cast<DOMTimeStamp>(event.eventTime()));
ExceptionCode ec = 0;
m_touchEventTarget->dispatchEvent(longpressEv.get(), ec);
@@ -2716,6 +2722,7 @@ bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event)
m_firstTouchPagePos.x(), m_firstTouchPagePos.y(),
event.ctrlKey(), event.altKey(), event.shiftKey(),
event.metaKey());
+ doubleTapEv->setCreateTime(static_cast<DOMTimeStamp>(event.eventTime()));
ExceptionCode ec = 0;
m_touchEventTarget->dispatchEvent(doubleTapEv.get(), ec);
@@ -2730,6 +2737,9 @@ bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event)
m_firstTouchPagePos.x(), m_firstTouchPagePos.y(),
event.ctrlKey(), event.altKey(), event.shiftKey(),
event.metaKey());
+#if PLATFORM(ANDROID)
+ startEv->setCreateTime(static_cast<DOMTimeStamp>(event.eventTime()));
+#endif
ExceptionCode ec = 0;
m_touchEventTarget->dispatchEvent(startEv.get(), ec);
defaultPrevented |= startEv->defaultPrevented();
@@ -2749,6 +2759,9 @@ bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event)
m_firstTouchPagePos.x(), m_firstTouchPagePos.y(),
event.ctrlKey(), event.altKey(), event.shiftKey(),
event.metaKey());
+#if PLATFORM(ANDROID)
+ moveEv->setCreateTime(static_cast<DOMTimeStamp>(event.eventTime()));
+#endif
ExceptionCode ec = 0;
m_touchEventTarget->dispatchEvent(moveEv.get(), ec);
defaultPrevented |= moveEv->defaultPrevented();
diff --git a/WebCore/platform/PlatformTouchEvent.h b/WebCore/platform/PlatformTouchEvent.h
index 1f071ce..854db3c 100644
--- a/WebCore/platform/PlatformTouchEvent.h
+++ b/WebCore/platform/PlatformTouchEvent.h
@@ -60,7 +60,8 @@ public:
#if PLATFORM(QT)
PlatformTouchEvent(QTouchEvent*);
#elif PLATFORM(ANDROID)
- PlatformTouchEvent(const IntPoint& windowPos, TouchEventType, PlatformTouchPoint::State);
+ // TODO (benm): eventTime is new and needs to be upstream
+ PlatformTouchEvent(const IntPoint& windowPos, TouchEventType, PlatformTouchPoint::State, long eventTime);
#endif
TouchEventType type() const { return m_type; }
@@ -71,6 +72,8 @@ public:
bool shiftKey() const { return m_shiftKey; }
bool metaKey() const { return m_metaKey; }
+ long eventTime() const { return m_eventTime; }
+
private:
TouchEventType m_type;
Vector<PlatformTouchPoint> m_touchPoints;
@@ -78,6 +81,7 @@ private:
bool m_altKey;
bool m_shiftKey;
bool m_metaKey;
+ long m_eventTime;
};
}
diff --git a/WebCore/platform/android/PlatformTouchEventAndroid.cpp b/WebCore/platform/android/PlatformTouchEventAndroid.cpp
index 65d787d..d2fcebb 100644
--- a/WebCore/platform/android/PlatformTouchEventAndroid.cpp
+++ b/WebCore/platform/android/PlatformTouchEventAndroid.cpp
@@ -30,12 +30,14 @@
namespace WebCore {
-PlatformTouchEvent::PlatformTouchEvent(const IntPoint& windowPos, TouchEventType type, PlatformTouchPoint::State state)
+// TODO (benm): eventTime is new and needs to be upstream
+PlatformTouchEvent::PlatformTouchEvent(const IntPoint& windowPos, TouchEventType type, PlatformTouchPoint::State state, long eventTime)
: m_type(type)
, m_ctrlKey(false)
, m_altKey(false)
, m_shiftKey(false)
, m_metaKey(false)
+ , m_eventTime(eventTime)
{
m_touchPoints.append(PlatformTouchPoint(windowPos, state));
}
diff --git a/WebCore/plugins/android/PluginViewAndroid.cpp b/WebCore/plugins/android/PluginViewAndroid.cpp
index 88e7f0b..0abbc13 100644
--- a/WebCore/plugins/android/PluginViewAndroid.cpp
+++ b/WebCore/plugins/android/PluginViewAndroid.cpp
@@ -185,7 +185,7 @@ void PluginView::handleTouchEvent(TouchEvent* event)
return;
ANPEvent evt;
- SkANP::InitEvent(&evt, kTouch_ANPEventType);
+ SkANP::InitEvent(&evt, kTouch_ANPEventType, event->timeStamp());
bool ignoreRet = false;
const AtomicString& type = event->type();
@@ -247,7 +247,7 @@ void PluginView::handleMouseEvent(MouseEvent* event)
ANPEvent evt;
if (isUp || isDown) {
- SkANP::InitEvent(&evt, kMouse_ANPEventType);
+ SkANP::InitEvent(&evt, kMouse_ANPEventType, event->timeStamp());
evt.data.mouse.action = isUp ? kUp_ANPMouseAction : kDown_ANPMouseAction;
// Convert to coordinates that are relative to the plugin.
@@ -309,7 +309,7 @@ void PluginView::handleKeyboardEvent(KeyboardEvent* event)
bool ignoreEvent = false;
ANPEvent evt;
- SkANP::InitEvent(&evt, kKey_ANPEventType);
+ SkANP::InitEvent(&evt, kKey_ANPEventType, event->timeStamp());
switch (pke->type()) {
case PlatformKeyboardEvent::KeyDown: