Co-ordinates of a TouchEvent object should be 0,0 to match the behavior on iPhone. It is the co-ordinates of the Touch object wrapped up by a touch event that should update with motion.
Update EventHandler::handleTouchEvent to match what landed to webkit in http://trac.webkit.org/changeset/55146
Change-Id: I91dfcfbbb53020b85f646bcf58eb4f3afd6be8e7
diff --git a/WebCore/page/EventHandler.cpp b/WebCore/page/EventHandler.cpp
index 39fe724..9a3b1ec 100644
--- a/WebCore/page/EventHandler.cpp
+++ b/WebCore/page/EventHandler.cpp
@@ -2631,8 +2631,6 @@
#endif
) && !i) {
m_touchEventTarget = target;
- m_firstTouchScreenPos = point.screenPos();
- m_firstTouchPagePos = pagePoint;
}
// Check to see if this should be added to targetTouches.
@@ -2696,9 +2694,7 @@
RefPtr<TouchEvent> cancelEv =
TouchEvent::create(TouchList::create().get(), TouchList::create().get(), cancelTouches.get(),
*eventName, m_touchEventTarget->document()->defaultView(),
- m_firstTouchScreenPos.x(), m_firstTouchScreenPos.y(),
- m_firstTouchPagePos.x(), m_firstTouchPagePos.y(),
- event.ctrlKey(), event.altKey(), event.shiftKey(),
+ 0, 0, 0, 0, event.ctrlKey(), event.altKey(), event.shiftKey(),
event.metaKey());
#if PLATFORM(ANDROID)
@@ -2714,9 +2710,7 @@
RefPtr<TouchEvent> endEv =
TouchEvent::create(touches.get(), targetTouches.get(), releasedTouches.get(),
*eventName, m_touchEventTarget->document()->defaultView(),
- m_firstTouchScreenPos.x(), m_firstTouchScreenPos.y(),
- m_firstTouchPagePos.x(), m_firstTouchPagePos.y(),
- event.ctrlKey(), event.altKey(), event.shiftKey(),
+ 0, 0, 0, 0, event.ctrlKey(), event.altKey(), event.shiftKey(),
event.metaKey());
#if PLATFORM(ANDROID)
endEv->setCreateTime(static_cast<DOMTimeStamp>(event.eventTime()));
@@ -2736,9 +2730,7 @@
RefPtr<TouchEvent> longpressEv =
TouchEvent::create(touches.get(), targetTouches.get(), pressedTouches.get(),
*eventName, m_touchEventTarget->document()->defaultView(),
- m_firstTouchScreenPos.x(), m_firstTouchScreenPos.y(),
- m_firstTouchPagePos.x(), m_firstTouchPagePos.y(),
- event.ctrlKey(), event.altKey(), event.shiftKey(),
+ 0, 0, 0, 0, event.ctrlKey(), event.altKey(), event.shiftKey(),
event.metaKey());
longpressEv->setCreateTime(static_cast<DOMTimeStamp>(event.eventTime()));
@@ -2750,9 +2742,7 @@
RefPtr<TouchEvent> doubleTapEv =
TouchEvent::create(touches.get(), targetTouches.get(), pressedTouches.get(),
*eventName, m_touchEventTarget->document()->defaultView(),
- m_firstTouchScreenPos.x(), m_firstTouchScreenPos.y(),
- m_firstTouchPagePos.x(), m_firstTouchPagePos.y(),
- event.ctrlKey(), event.altKey(), event.shiftKey(),
+ 0, 0, 0, 0, event.ctrlKey(), event.altKey(), event.shiftKey(),
event.metaKey());
doubleTapEv->setCreateTime(static_cast<DOMTimeStamp>(event.eventTime()));
@@ -2765,9 +2755,7 @@
RefPtr<TouchEvent> startEv =
TouchEvent::create(touches.get(), targetTouches.get(), pressedTouches.get(),
*eventName, m_touchEventTarget->document()->defaultView(),
- m_firstTouchScreenPos.x(), m_firstTouchScreenPos.y(),
- m_firstTouchPagePos.x(), m_firstTouchPagePos.y(),
- event.ctrlKey(), event.altKey(), event.shiftKey(),
+ 0, 0, 0, 0, event.ctrlKey(), event.altKey(), event.shiftKey(),
event.metaKey());
#if PLATFORM(ANDROID)
startEv->setCreateTime(static_cast<DOMTimeStamp>(event.eventTime()));
@@ -2787,9 +2775,7 @@
RefPtr<TouchEvent> moveEv =
TouchEvent::create(touches.get(), targetTouches.get(), movedTouches.get(),
*eventName, m_touchEventTarget->document()->defaultView(),
- m_firstTouchScreenPos.x(), m_firstTouchScreenPos.y(),
- m_firstTouchPagePos.x(), m_firstTouchPagePos.y(),
- event.ctrlKey(), event.altKey(), event.shiftKey(),
+ 0, 0, 0, 0, event.ctrlKey(), event.altKey(), event.shiftKey(),
event.metaKey());
#if PLATFORM(ANDROID)
moveEv->setCreateTime(static_cast<DOMTimeStamp>(event.eventTime()));
diff --git a/WebCore/page/EventHandler.h b/WebCore/page/EventHandler.h
index e871f61..759be2b 100644
--- a/WebCore/page/EventHandler.h
+++ b/WebCore/page/EventHandler.h
@@ -432,8 +432,6 @@
typedef HashMap<int, RefPtr<EventTarget> > TouchTargetMap;
TouchTargetMap m_originatingTouchPointTargets;
RefPtr<Node> m_touchEventTarget;
- IntPoint m_firstTouchScreenPos;
- IntPoint m_firstTouchPagePos;
#endif
};