15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* 25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2006, 2007, 2009, 2010, 2011 Apple Inc. All rights reserved. 35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Redistribution and use in source and binary forms, with or without 55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * modification, are permitted provided that the following conditions 65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * are met: 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 1. Redistributions of source code must retain the above copyright 85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * notice, this list of conditions and the following disclaimer. 95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 2. Redistributions in binary form must reproduce the above copyright 105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * notice, this list of conditions and the following disclaimer in the 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * documentation and/or other materials provided with the distribution. 125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 2302772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#ifndef EventHandler_h 275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#define EventHandler_h 285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2953e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/dom/TextEventInputType.h" 3053e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/dom/UserGestureIndicator.h" 3153e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/editing/TextGranularity.h" 3253e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/page/DragActions.h" 3353e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/page/FocusDirection.h" 3453e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/platform/Cursor.h" 3553e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/platform/PlatformMouseEvent.h" 3653e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/platform/ScrollTypes.h" 3753e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/platform/Timer.h" 3853e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/platform/graphics/LayoutPoint.h" 3953e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/rendering/HitTestRequest.h" 40591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#include "wtf/Forward.h" 41591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#include "wtf/HashMap.h" 42591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#include "wtf/RefPtr.h" 435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)namespace WebCore { 455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class Clipboard; 47926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)class Document; 48926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)class Element; 495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class Event; 505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class EventTarget; 515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class FloatPoint; 525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class FloatQuad; 53f5e4ad553afbc08dd2e729bb77e937a9a94d5827Torne (Richard Coles)class FullscreenElementStack; 545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class Frame; 555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class HTMLFrameSetElement; 565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class HitTestRequest; 575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class HitTestResult; 585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class KeyboardEvent; 595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class MouseEventWithHitTestResults; 605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class Node; 615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class OptionalCursor; 6253e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)class PlatformGestureEvent; 635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class PlatformKeyboardEvent; 645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class PlatformTouchEvent; 655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class PlatformWheelEvent; 665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class RenderLayer; 675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class RenderObject; 685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class RenderWidget; 695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class SVGElementInstance; 705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class Scrollbar; 715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class TextEvent; 725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class TouchEvent; 735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class VisibleSelection; 745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class WheelEvent; 755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class Widget; 765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 77926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)struct DragState; 78926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const int LinkDragHysteresis; 805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const int ImageDragHysteresis; 815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const int TextDragHysteresis; 825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)extern const int GeneralDragHysteresis; 835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)enum AppendTrailingWhitespace { ShouldAppendTrailingWhitespace, DontAppendTrailingWhitespace }; 85926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)enum CheckDragHysteresis { ShouldCheckDragHysteresis, DontCheckDragHysteresis }; 865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class EventHandler { 885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WTF_MAKE_NONCOPYABLE(EventHandler); 895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)public: 905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) explicit EventHandler(Frame*); 915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ~EventHandler(); 925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void clear(); 945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void nodeWillBeRemoved(Node*); 955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void updateSelectionForMouseDrag(); 975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) Node* mousePressNode() const; 995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void setMousePressNode(PassRefPtr<Node>); 1005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 101e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch#if OS(WINDOWS) 1025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void startPanScrolling(RenderObject*); 103926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#endif 1045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1055267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) void stopAutoscrollTimer(); 106926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) bool mouseDownWasInSubframe() const { return m_mouseDownWasInSubframe; } 1075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void dispatchFakeMouseMoveEventSoon(); 1095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void dispatchFakeMouseMoveEventSoonInQuad(const FloatQuad&); 1105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 111926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) HitTestResult hitTestResultAtPoint(const LayoutPoint&, 112591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch HitTestRequest::HitTestRequestType hitType = HitTestRequest::ReadOnly | HitTestRequest::Active, 11353e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) const LayoutSize& padding = LayoutSize()); 1145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool mousePressed() const { return m_mousePressed; } 1165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void setMousePressed(bool pressed) { m_mousePressed = pressed; } 1175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void setCapturingMouseEventsNode(PassRefPtr<Node>); // A caller is responsible for resetting capturing node to 0. 1195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool updateDragAndDrop(const PlatformMouseEvent&, Clipboard*); 1215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void cancelDragAndDrop(const PlatformMouseEvent&, Clipboard*); 1225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool performDragAndDrop(const PlatformMouseEvent&, Clipboard*); 1235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void updateDragStateAfterEditDragIfNeeded(Element* rootEditableElement); 1245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void scheduleHoverStateUpdate(); 1265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void setResizingFrameSet(HTMLFrameSetElement*); 1285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void resizeLayerDestroyed(); 1305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 131926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) IntPoint lastKnownMousePosition() const; 132926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) Cursor currentMouseCursor() const { return m_currentMouseCursor; } 1335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) static Frame* subframeForTargetNode(Node*); 1355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) static Frame* subframeForHitTestResult(const MouseEventWithHitTestResults&); 1365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool scrollOverflow(ScrollDirection, ScrollGranularity, Node* startingNode = 0); 1385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool scrollRecursively(ScrollDirection, ScrollGranularity, Node* startingNode = 0); 1395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool logicalScrollRecursively(ScrollLogicalDirection, ScrollGranularity, Node* startingNode = 0); 1405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool mouseMoved(const PlatformMouseEvent&); 1425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void lostMouseCapture(); 1445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool handleMousePressEvent(const PlatformMouseEvent&); 14649bab615b8da6265d736fdeeaa328a3ce5c7e155Torne (Richard Coles) bool handleMouseMoveEvent(const PlatformMouseEvent&, HitTestResult* hoveredNode = 0, bool onlyUpdateScrollbars = false); 1475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool handleMouseReleaseEvent(const PlatformMouseEvent&); 1485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool handleWheelEvent(const PlatformWheelEvent&); 1495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void defaultWheelEventHandler(Node*, WheelEvent*); 1505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool handlePasteGlobalSelection(const PlatformMouseEvent&); 1515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool handleGestureEvent(const PlatformGestureEvent&); 1535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool handleGestureTap(const PlatformGestureEvent&); 1545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool handleGestureLongPress(const PlatformGestureEvent&); 155926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) bool handleGestureLongTap(const PlatformGestureEvent&); 1565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool handleGestureTwoFingerTap(const PlatformGestureEvent&); 1575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool handleGestureScrollUpdate(const PlatformGestureEvent&); 158926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) bool handleGestureScrollBegin(const PlatformGestureEvent&); 15953e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) bool handleGestureScrollEnd(const PlatformGestureEvent&); 160926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) void clearGestureScrollNodes(); 161926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) bool isScrollbarHandlingGestures() const; 1625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 163926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) bool shouldApplyTouchAdjustment(const PlatformGestureEvent&) const; 164926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 1655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool bestClickableNodeForTouchPoint(const IntPoint& touchCenter, const IntSize& touchRadius, IntPoint& targetPoint, Node*& targetNode); 1665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool bestContextMenuNodeForTouchPoint(const IntPoint& touchCenter, const IntSize& touchRadius, IntPoint& targetPoint, Node*& targetNode); 1675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool bestZoomableAreaForTouchPoint(const IntPoint& touchCenter, const IntSize& touchRadius, IntRect& targetArea, Node*& targetNode); 1685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool adjustGesturePosition(const PlatformGestureEvent&, IntPoint& adjustedPoint); 1705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool sendContextMenuEvent(const PlatformMouseEvent&); 1725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool sendContextMenuEventForKey(); 1735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool sendContextMenuEventForGesture(const PlatformGestureEvent&); 1745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void setMouseDownMayStartAutoscroll() { m_mouseDownMayStartAutoscroll = true; } 1765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) static unsigned accessKeyModifiers(); 1785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool handleAccessKey(const PlatformKeyboardEvent&); 1795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool keyEvent(const PlatformKeyboardEvent&); 1805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void defaultKeyboardEventHandler(KeyboardEvent*); 1815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool handleTextInputEvent(const String& text, Event* underlyingEvent = 0, TextEventInputType = TextEventInputKeyboard); 1835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void defaultTextInputEventHandler(TextEvent*); 1845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void dragSourceEndedAt(const PlatformMouseEvent&, DragOperation); 1865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void focusDocumentView(); 1885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void capsLockStateMayHaveChanged(); // Only called by FrameSelection 19053e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) 1915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void sendResizeEvent(); // Only called in FrameView 1925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void sendScrollEvent(); // Ditto 1935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool handleTouchEvent(const PlatformTouchEvent&); 1955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool useHandCursor(Node*, bool isOverLink, bool shiftKey); 1975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)private: 1995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) static DragState& dragState(); 2005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) static const double TextDragDelay; 20102772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch 2025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) PassRefPtr<Clipboard> createDraggingClipboard() const; 2035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool updateSelectionForMouseDownDispatchingSelectStart(Node*, const VisibleSelection&, TextGranularity); 2055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void selectClosestWordFromHitTestResult(const HitTestResult&, AppendTrailingWhitespace); 2065267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) void selectClosestMisspellingFromHitTestResult(const HitTestResult&, AppendTrailingWhitespace); 2075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void selectClosestWordFromMouseEvent(const MouseEventWithHitTestResults&); 2085267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) void selectClosestMisspellingFromMouseEvent(const MouseEventWithHitTestResults&); 2095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void selectClosestWordOrLinkFromMouseEvent(const MouseEventWithHitTestResults&); 2105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool handleMousePressEvent(const MouseEventWithHitTestResults&); 2125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool handleMousePressEventSingleClick(const MouseEventWithHitTestResults&); 2135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool handleMousePressEventDoubleClick(const MouseEventWithHitTestResults&); 2145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool handleMousePressEventTripleClick(const MouseEventWithHitTestResults&); 2155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool handleMouseDraggedEvent(const MouseEventWithHitTestResults&); 2165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool handleMouseReleaseEvent(const MouseEventWithHitTestResults&); 2175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) OptionalCursor selectCursor(const MouseEventWithHitTestResults&, Scrollbar*); 2195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void hoverTimerFired(Timer<EventHandler>*); 2205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool logicalScrollOverflow(ScrollLogicalDirection, ScrollGranularity, Node* startingNode = 0); 22202772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch 2235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool shouldTurnVerticalTicksIntoHorizontal(const HitTestResult&, const PlatformWheelEvent&) const; 2245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool mouseDownMayStartSelect() const { return m_mouseDownMayStartSelect; } 2255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) static bool isKeyboardOptionTab(KeyboardEvent*); 2275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 228926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) void fakeMouseMoveEventTimerFired(Timer<EventHandler>*); 2295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void cancelFakeMouseMoveEvent(); 23053e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) bool isCursorVisible() const; 2315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 232926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) bool isInsideScrollbar(const IntPoint&) const; 233926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 2345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool dispatchSyntheticTouchEventIfEnabled(const PlatformMouseEvent&); 23553e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) HitTestResult hitTestResultInFrame(Frame*, const LayoutPoint&, HitTestRequest::HitTestRequestType hitType = HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::DisallowShadowContent); 2365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void invalidateClick(); 2385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) Node* nodeUnderMouse() const; 24002772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch 2415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void updateMouseEventTargetNode(Node*, const PlatformMouseEvent&, bool fireMouseOverOut); 2425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void fireMouseOverOut(bool fireMouseOver = true, bool fireMouseOut = true, bool updateLastNodeUnderMouse = true); 24302772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch 2445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) MouseEventWithHitTestResults prepareMouseEvent(const HitTestRequest&, const PlatformMouseEvent&); 2455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool dispatchMouseEvent(const AtomicString& eventType, Node* target, bool cancelable, int clickCount, const PlatformMouseEvent&, bool setUnder); 2475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool dispatchDragEvent(const AtomicString& eventType, Node* target, const PlatformMouseEvent&, Clipboard*); 2485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void freeClipboard(); 2505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 251926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) bool handleDrag(const MouseEventWithHitTestResults&, CheckDragHysteresis); 252e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch bool tryStartDrag(const MouseEventWithHitTestResults&); 2535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool handleMouseUp(const MouseEventWithHitTestResults&); 2545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void clearDragState(); 2555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool dispatchDragSrcEvent(const AtomicString& eventType, const PlatformMouseEvent&); 2575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool dragHysteresisExceeded(const FloatPoint&) const; 2595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool dragHysteresisExceeded(const IntPoint&) const; 2605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool passMousePressEventToSubframe(MouseEventWithHitTestResults&, Frame* subframe); 2625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool passMouseMoveEventToSubframe(MouseEventWithHitTestResults&, Frame* subframe, HitTestResult* hoveredNode = 0); 2635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool passMouseReleaseEventToSubframe(MouseEventWithHitTestResults&, Frame* subframe); 2645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool passSubframeEventToSubframe(MouseEventWithHitTestResults&, Frame* subframe, HitTestResult* hoveredNode = 0); 2665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool passMousePressEventToScrollbar(MouseEventWithHitTestResults&, Scrollbar*); 2685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool passWidgetMouseDownEventToWidget(const MouseEventWithHitTestResults&); 2705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool passWheelEventToWidget(const PlatformWheelEvent&, Widget*); 2725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void defaultSpaceEventHandler(KeyboardEvent*); 2745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void defaultBackspaceEventHandler(KeyboardEvent*); 2755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void defaultTabEventHandler(KeyboardEvent*); 2765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void defaultArrowEventHandler(FocusDirection, KeyboardEvent*); 2775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) DragSourceAction updateDragSourceActionsAllowed() const; 2795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void updateSelectionForMouseDrag(const HitTestResult&); 2815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void updateLastScrollbarUnderMouse(Scrollbar*, bool); 28302772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch 2845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void setFrameWasScrolledByUser(); 2855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool capturesDragging() const { return m_capturesDragging; } 2875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 288f5e4ad553afbc08dd2e729bb77e937a9a94d5827Torne (Richard Coles) bool isKeyEventAllowedInFullScreen(FullscreenElementStack*, const PlatformKeyboardEvent&) const; 2895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool handleGestureTapDown(); 29181a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) 29281a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) bool handleScrollGestureOnResizer(Node*, const PlatformGestureEvent&); 29381a5157921f1d2a7ff6aae115bfe3c139b38a5c8Torne (Richard Coles) 294926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) bool passGestureEventToWidget(const PlatformGestureEvent&, Widget*); 295926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) bool passGestureEventToWidgetIfPossible(const PlatformGestureEvent&, RenderObject*); 296926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) bool sendScrollEventToView(const PlatformGestureEvent&, const FloatSize&); 29753e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) Frame* getSubFrameForGestureEvent(const IntPoint& touchAdjustedPoint, const PlatformGestureEvent&); 298926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 2995267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) bool panScrollInProgress() const; 300926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) void setLastKnownMousePosition(const PlatformMouseEvent&); 301926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 302e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch Frame* const m_frame; 3035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool m_mousePressed; 3055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool m_capturesDragging; 3065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) RefPtr<Node> m_mousePressNode; 3075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool m_mouseDownMayStartSelect; 3095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool m_mouseDownMayStartDrag; 3105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool m_dragMayStartSelectionInstead; 3115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool m_mouseDownWasSingleClickInSelection; 3125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) enum SelectionInitiationState { HaveNotStartedSelection, PlacedCaret, ExtendedSelection }; 3135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) SelectionInitiationState m_selectionInitiationState; 3145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) LayoutPoint m_dragStartPos; 3165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool m_panScrollButtonPressed; 3185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) Timer<EventHandler> m_hoverTimer; 320926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 3215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool m_mouseDownMayStartAutoscroll; 3225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool m_mouseDownWasInSubframe; 3235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 324926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) Timer<EventHandler> m_fakeMouseMoveEventTimer; 3255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool m_svgPan; 3275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) RefPtr<SVGElementInstance> m_instanceUnderMouse; 3285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) RefPtr<SVGElementInstance> m_lastInstanceUnderMouse; 3295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) RenderLayer* m_resizeLayer; 3315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) RefPtr<Node> m_capturingMouseEventsNode; 3335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool m_eventHandlerWillResetCapturingMouseEventsNode; 33402772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch 3355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) RefPtr<Node> m_nodeUnderMouse; 3365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) RefPtr<Node> m_lastNodeUnderMouse; 3375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) RefPtr<Frame> m_lastMouseMoveEventSubframe; 3385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) RefPtr<Scrollbar> m_lastScrollbarUnderMouse; 339926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) Cursor m_currentMouseCursor; 3405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) int m_clickCount; 3425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) RefPtr<Node> m_clickNode; 3435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) RefPtr<Node> m_dragTarget; 3455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool m_shouldOnlyFireDragOverEvent; 34602772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch 3475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) RefPtr<HTMLFrameSetElement> m_frameSetBeingResized; 3485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) LayoutSize m_offsetFromResizeCorner; // In the coords of m_resizeLayer. 35002772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch 351926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) bool m_mousePositionIsUnknown; 352926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) IntPoint m_lastKnownMousePosition; 353926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) IntPoint m_lastKnownMouseGlobalPosition; 3545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) IntPoint m_mouseDownPos; // In our view's coords. 3555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) double m_mouseDownTimestamp; 3565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) PlatformMouseEvent m_mouseDown; 357926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) RefPtr<UserGestureToken> m_lastMouseDownUserGestureToken; 3585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) RefPtr<Node> m_latchedWheelEventNode; 3605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool m_widgetIsLatched; 3615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) RefPtr<Node> m_previousWheelScrolledNode; 3635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) typedef HashMap<int, RefPtr<EventTarget> > TouchTargetMap; 3655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) TouchTargetMap m_originatingTouchPointTargets; 366926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) RefPtr<Document> m_originatingTouchPointDocument; 367926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) unsigned m_originatingTouchPointTargetKey; 3685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool m_touchPressed; 3695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) RefPtr<Node> m_scrollGestureHandlingNode; 371926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) bool m_lastHitTestResultOverWidget; 372926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) RefPtr<Node> m_previousGestureScrolledNode; 373926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) RefPtr<Scrollbar> m_scrollbarHandlingScrollGesture; 3745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 375926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) double m_maxMouseMovedDuration; 3765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) PlatformEvent::Type m_baseEventType; 377926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) bool m_didStartDrag; 378926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 37953e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) bool m_longTapShouldInvokeContextMenu; 3805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}; 3815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} // namespace WebCore 3835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#endif // EventHandler_h 385