Source/WebCore/ChangeLog

 12012-05-01 Terry Anderson <tdanderson@chromium.org>
 2
 3 Allow a pre-targeted node to be specified when dispatching a GestureTap event
 4 https://bugs.webkit.org/show_bug.cgi?id=85296
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 No new tests. (OOPS!)
 9
 10 * page/EventHandler.cpp:
 11 (WebCore::EventHandler::handleGestureTap):
 12 The new preTargetedNode parameter can be used to pass in the Node that is
 13 the target of the GestureTap event. If this parameter is used, adjustedPoint
 14 is changed to be the center of the Node's bounding rectangle.
 15 * page/EventHandler.h:
 16 (EventHandler):
 17
1182012-05-01 Philip Rogers <pdr@google.com>
219
320 Skip building instance tree for disallowed target

Source/WebCore/page/EventHandler.cpp

@@bool EventHandler::handleGestureEvent(const PlatformGestureEvent& gestureEvent)
24292429 return false;
24302430}
24312431
2432 bool EventHandler::handleGestureTap(const PlatformGestureEvent& gestureEvent)
 2432bool EventHandler::handleGestureTap(const PlatformGestureEvent& gestureEvent, PassRefPtr<Node> preTargetedNode)
24332433{
2434  // FIXME: Refactor this code to not hit test multiple times.
24352434 IntPoint adjustedPoint = gestureEvent.position();
24362435#if ENABLE(TOUCH_ADJUSTMENT)
2437  if (!gestureEvent.area().isEmpty()) {
 2436 if (!gestureEvent.area().isEmpty() && !preTargetedNode) {
24382437 Node* targetNode = 0;
24392438 // For now we use the adjusted position to ensure the later redundant hit-tests hits the right node.
24402439 bestClickableNodeForTouchPoint(gestureEvent.position(), IntSize(gestureEvent.area().width() / 2, gestureEvent.area().height() / 2), adjustedPoint, targetNode);

@@bool EventHandler::handleGestureTap(const PlatformGestureEvent& gestureEvent)
24422441 return false;
24432442 }
24442443#endif
 2444 // FIXME: Refactor to avoid hit testing multiple times (this is only an interim step)
 2445 if (preTargetedNode)
 2446 adjustedPoint = preTargetedNode->getRect().center();
 2447
24452448 bool defaultPrevented = false;
24462449 PlatformMouseEvent fakeMouseMove(adjustedPoint, gestureEvent.globalPosition(), NoButton, PlatformEvent::MouseMoved, /* clickCount */ 1, gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey(), gestureEvent.timestamp());
24472450 PlatformMouseEvent fakeMouseDown(adjustedPoint, gestureEvent.globalPosition(), LeftButton, PlatformEvent::MousePressed, /* clickCount */ 1, gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey(), gestureEvent.timestamp());

Source/WebCore/page/EventHandler.h

@@public:
163163
164164#if ENABLE(GESTURE_EVENTS)
165165 bool handleGestureEvent(const PlatformGestureEvent&);
166  bool handleGestureTap(const PlatformGestureEvent&);
 166 bool handleGestureTap(const PlatformGestureEvent&, PassRefPtr<Node> preTargetedNode = 0);
167167 bool handleGestureScrollUpdate(const PlatformGestureEvent&);
168168#endif
169169