Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(484)

Unified Diff: third_party/WebKit/WebCore/page/EventHandler.h

Issue 21165: Revert the merge. Mac build is mysteriously broken. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/WebCore/page/EventHandler.h
===================================================================
--- third_party/WebKit/WebCore/page/EventHandler.h (revision 9383)
+++ third_party/WebKit/WebCore/page/EventHandler.h (working copy)
@@ -1,354 +1,355 @@
-/*
- * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef EventHandler_h
-#define EventHandler_h
-
-#include "DragActions.h"
-#include "FocusDirection.h"
-#include "PlatformMouseEvent.h"
-#include "ScrollTypes.h"
-#include "Timer.h"
-#include <wtf/Forward.h>
-#include <wtf/Noncopyable.h>
-#include <wtf/Platform.h>
-#include <wtf/RefPtr.h>
-
-#if PLATFORM(MAC)
-#include "WebCoreKeyboardUIMode.h"
-#ifndef __OBJC__
-class NSEvent;
-class NSView;
-#endif
-#endif
-
-namespace WebCore {
-
-class AtomicString;
-class Clipboard;
-class Cursor;
-class Event;
-class FloatPoint;
-class FloatRect;
-class Frame;
-class HitTestRequest;
-class HitTestResult;
-class HTMLFrameSetElement;
-class KeyboardEvent;
-class MouseEventWithHitTestResults;
-class Node;
-class PlatformKeyboardEvent;
-class PlatformWheelEvent;
-class RenderLayer;
-class RenderObject;
-class RenderWidget;
-class Scrollbar;
-class String;
-class SVGElementInstance;
-class TextEvent;
-class VisiblePosition;
-class Widget;
-
-extern const int LinkDragHysteresis;
-extern const int ImageDragHysteresis;
-extern const int TextDragHysteresis;
-extern const int GeneralDragHysteresis;
-
-class EventHandler : Noncopyable {
-public:
- EventHandler(Frame*);
- ~EventHandler();
-
- void clear();
-
- void updateSelectionForMouseDrag();
-
- Node* mousePressNode() const;
- void setMousePressNode(PassRefPtr<Node>);
-
- bool panScrollInProgress() { return m_panScrollInProgress; }
- void setPanScrollInProgress(bool inProgress) { m_panScrollInProgress = inProgress; }
-
- void stopAutoscrollTimer(bool rendererIsBeingDestroyed = false);
- RenderObject* autoscrollRenderer() const;
- void updateAutoscrollRenderer();
-
- HitTestResult hitTestResultAtPoint(const IntPoint&, bool allowShadowContent, bool ignoreClipping = false);
-
- bool mousePressed() const { return m_mousePressed; }
- void setMousePressed(bool pressed) { m_mousePressed = pressed; }
-
- void setCapturingMouseEventsNode(PassRefPtr<Node>);
-
- bool updateDragAndDrop(const PlatformMouseEvent&, Clipboard*);
- void cancelDragAndDrop(const PlatformMouseEvent&, Clipboard*);
- bool performDragAndDrop(const PlatformMouseEvent&, Clipboard*);
-
- void scheduleHoverStateUpdate();
-
- void setResizingFrameSet(HTMLFrameSetElement*);
-
- void resizeLayerDestroyed();
-
- IntPoint currentMousePosition() const;
-
- void setIgnoreWheelEvents(bool);
-
- bool scrollOverflow(ScrollDirection, ScrollGranularity);
-
- bool shouldDragAutoNode(Node*, const IntPoint&) const; // -webkit-user-drag == auto
-
- bool tabsToLinks(KeyboardEvent*) const;
- bool tabsToAllControls(KeyboardEvent*) const;
-
- bool mouseDownMayStartSelect() const { return m_mouseDownMayStartSelect; }
-
- bool mouseMoved(const PlatformMouseEvent&);
-
- bool handleMousePressEvent(const PlatformMouseEvent&);
- bool handleMouseMoveEvent(const PlatformMouseEvent&, HitTestResult* hoveredNode = 0);
- bool handleMouseReleaseEvent(const PlatformMouseEvent&);
- bool handleWheelEvent(PlatformWheelEvent&);
-
- bool sendContextMenuEvent(const PlatformMouseEvent&);
-
- void setMouseDownMayStartAutoscroll() { m_mouseDownMayStartAutoscroll = true; }
-
- bool needsKeyboardEventDisambiguationQuirks() const;
-
- static unsigned accessKeyModifiers();
- bool handleAccessKey(const PlatformKeyboardEvent&);
- bool keyEvent(const PlatformKeyboardEvent&);
- void defaultKeyboardEventHandler(KeyboardEvent*);
-
- bool handleTextInputEvent(const String& text, Event* underlyingEvent = 0,
- bool isLineBreak = false, bool isBackTab = false);
- void defaultTextInputEventHandler(TextEvent*);
-
- bool eventMayStartDrag(const PlatformMouseEvent&) const;
-
- void dragSourceMovedTo(const PlatformMouseEvent&);
- void dragSourceEndedAt(const PlatformMouseEvent&, DragOperation);
-
- void focusDocumentView();
-
- void capsLockStateMayHaveChanged();
-
- unsigned pendingFrameUnloadEventCount();
- void addPendingFrameUnloadEventCount();
- void removePendingFrameUnloadEventCount();
- void clearPendingFrameUnloadEventCount();
- unsigned pendingFrameBeforeUnloadEventCount();
- void addPendingFrameBeforeUnloadEventCount();
- void removePendingFrameBeforeUnloadEventCount();
- void clearPendingFrameBeforeUnloadEventCount();
-
- void sendResizeEvent();
- void sendScrollEvent();
-
-#if PLATFORM(MAC)
- PassRefPtr<KeyboardEvent> currentKeyboardEvent() const;
-
- void mouseDown(NSEvent*);
- void mouseDragged(NSEvent*);
- void mouseUp(NSEvent*);
- void mouseMoved(NSEvent*);
- bool keyEvent(NSEvent*);
- bool wheelEvent(NSEvent*);
-
- void sendFakeEventsAfterWidgetTracking(NSEvent* initiatingEvent);
-
- void setActivationEventNumber(int num) { m_activationEventNumber = num; }
-
- NSEvent *currentNSEvent();
-#endif
-
-private:
- struct EventHandlerDragState {
- RefPtr<Node> m_dragSrc; // element that may be a drag source, for the current mouse gesture
- bool m_dragSrcIsLink;
- bool m_dragSrcIsImage;
- bool m_dragSrcInSelection;
- bool m_dragSrcMayBeDHTML;
- bool m_dragSrcMayBeUA; // Are DHTML and/or the UserAgent allowed to drag out?
- bool m_dragSrcIsDHTML;
- RefPtr<Clipboard> m_dragClipboard; // used on only the source side of dragging
- };
- static EventHandlerDragState& dragState();
- static const double TextDragDelay;
-
- PassRefPtr<Clipboard> createDraggingClipboard() const;
-
- bool eventActivatedView(const PlatformMouseEvent&) const;
- void selectClosestWordFromMouseEvent(const MouseEventWithHitTestResults& event);
- void selectClosestWordOrLinkFromMouseEvent(const MouseEventWithHitTestResults& event);
-
- bool handleMouseDoubleClickEvent(const PlatformMouseEvent&);
-
- bool handleMousePressEvent(const MouseEventWithHitTestResults&);
- bool handleMousePressEventSingleClick(const MouseEventWithHitTestResults&);
- bool handleMousePressEventDoubleClick(const MouseEventWithHitTestResults&);
- bool handleMousePressEventTripleClick(const MouseEventWithHitTestResults&);
- bool handleMouseDraggedEvent(const MouseEventWithHitTestResults&);
- bool handleMouseReleaseEvent(const MouseEventWithHitTestResults&);
-
- void handleKeyboardSelectionMovement(KeyboardEvent*);
-
- Cursor selectCursor(const MouseEventWithHitTestResults&, Scrollbar*);
- void setPanScrollCursor();
-
- void hoverTimerFired(Timer<EventHandler>*);
-
- static bool canMouseDownStartSelect(Node*);
- static bool canMouseDragExtendSelect(Node*);
-
- void handleAutoscroll(RenderObject*);
- void startAutoscrollTimer();
- void setAutoscrollRenderer(RenderObject*);
- void autoscrollTimerFired(Timer<EventHandler>*);
-
- void invalidateClick();
-
- Node* nodeUnderMouse() const;
-
- void updateMouseEventTargetNode(Node*, const PlatformMouseEvent&, bool fireMouseOverOut);
- void fireMouseOverOut(bool fireMouseOver = true, bool fireMouseOut = true, bool updateLastNodeUnderMouse = true);
-
- MouseEventWithHitTestResults prepareMouseEvent(const HitTestRequest&, const PlatformMouseEvent&);
-
- bool dispatchMouseEvent(const AtomicString& eventType, Node* target, bool cancelable, int clickCount, const PlatformMouseEvent&, bool setUnder);
- bool dispatchDragEvent(const AtomicString& eventType, Node* target, const PlatformMouseEvent&, Clipboard*);
-
- void freeClipboard();
-
- bool handleDrag(const MouseEventWithHitTestResults&);
- bool handleMouseUp(const MouseEventWithHitTestResults&);
- void clearDragState();
-
- bool dispatchDragSrcEvent(const AtomicString& eventType, const PlatformMouseEvent&);
-
- bool dragHysteresisExceeded(const FloatPoint&) const;
- bool dragHysteresisExceeded(const IntPoint&) const;
-
- bool passMousePressEventToSubframe(MouseEventWithHitTestResults&, Frame* subframe);
- bool passMouseMoveEventToSubframe(MouseEventWithHitTestResults&, Frame* subframe, HitTestResult* hoveredNode = 0);
- bool passMouseReleaseEventToSubframe(MouseEventWithHitTestResults&, Frame* subframe);
-
- bool passSubframeEventToSubframe(MouseEventWithHitTestResults&, Frame* subframe, HitTestResult* hoveredNode = 0);
-
- bool passMousePressEventToScrollbar(MouseEventWithHitTestResults&, Scrollbar*);
-
- bool passWidgetMouseDownEventToWidget(const MouseEventWithHitTestResults&);
- bool passWidgetMouseDownEventToWidget(RenderWidget*);
-
- bool passMouseDownEventToWidget(Widget*);
- bool passWheelEventToWidget(PlatformWheelEvent&, Widget*);
-
- void defaultSpaceEventHandler(KeyboardEvent*);
- void defaultTabEventHandler(KeyboardEvent*);
-
- void allowDHTMLDrag(bool& flagDHTML, bool& flagUA) const;
-
- // The following are called at the beginning of handleMouseUp and handleDrag.
- // If they return true it indicates that they have consumed the event.
-#if PLATFORM(MAC)
- bool eventLoopHandleMouseUp(const MouseEventWithHitTestResults&);
- bool eventLoopHandleMouseDragged(const MouseEventWithHitTestResults&);
- NSView *mouseDownViewIfStillGood();
-#else
- bool eventLoopHandleMouseUp(const MouseEventWithHitTestResults&) { return false; }
- bool eventLoopHandleMouseDragged(const MouseEventWithHitTestResults&) { return false; }
-#endif
-
- bool invertSenseOfTabsToLinks(KeyboardEvent*) const;
-
- void updateSelectionForMouseDrag(Node* targetNode, const IntPoint& localPoint);
-
- Frame* m_frame;
-
- bool m_mousePressed;
- RefPtr<Node> m_mousePressNode;
-
- bool m_mouseDownMayStartSelect;
- bool m_mouseDownMayStartDrag;
- bool m_mouseDownWasSingleClickInSelection;
- bool m_beganSelectingText;
-
- IntPoint m_dragStartPos;
-
- IntPoint m_panScrollStartPos;
- bool m_panScrollInProgress;
-
- Timer<EventHandler> m_hoverTimer;
-
- Timer<EventHandler> m_autoscrollTimer;
- RenderObject* m_autoscrollRenderer;
- bool m_autoscrollInProgress;
- bool m_mouseDownMayStartAutoscroll;
- bool m_mouseDownWasInSubframe;
-#if ENABLE(SVG)
- bool m_svgPan;
- RefPtr<SVGElementInstance> m_instanceUnderMouse;
- RefPtr<SVGElementInstance> m_lastInstanceUnderMouse;
-#endif
-
- RenderLayer* m_resizeLayer;
-
- RefPtr<Node> m_capturingMouseEventsNode;
-
- RefPtr<Node> m_nodeUnderMouse;
- RefPtr<Node> m_lastNodeUnderMouse;
- RefPtr<Frame> m_lastMouseMoveEventSubframe;
- RefPtr<Scrollbar> m_lastScrollbarUnderMouse;
-
- int m_clickCount;
- RefPtr<Node> m_clickNode;
-
- RefPtr<Node> m_dragTarget;
-
- RefPtr<HTMLFrameSetElement> m_frameSetBeingResized;
-
- IntSize m_offsetFromResizeCorner; // in the coords of m_resizeLayer
-
- IntPoint m_currentMousePosition;
- IntPoint m_mouseDownPos; // in our view's coords
- double m_mouseDownTimestamp;
- PlatformMouseEvent m_mouseDown;
-
- unsigned m_pendingFrameUnloadEventCount;
- unsigned m_pendingFrameBeforeUnloadEventCount;
-
-#if PLATFORM(MAC)
- NSView *m_mouseDownView;
- bool m_sendingEventToSubview;
- int m_activationEventNumber;
-#endif
-
-};
-
-} // namespace WebCore
-
-#endif // EventHandler_h
-
+/*
+ * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef EventHandler_h
+#define EventHandler_h
+
+#include "DragActions.h"
+#include "FocusDirection.h"
+#include "PlatformMouseEvent.h"
+#include "ScrollTypes.h"
+#include "Timer.h"
+#include <wtf/Forward.h>
+#include <wtf/Noncopyable.h>
+#include <wtf/Platform.h>
+#include <wtf/RefPtr.h>
+
+#if PLATFORM(MAC)
+#include "WebCoreKeyboardUIMode.h"
+#ifndef __OBJC__
+class NSEvent;
+class NSView;
+#endif
+#endif
+
+namespace WebCore {
+
+class AtomicString;
+class Clipboard;
+class Cursor;
+class EventTargetNode;
+class Event;
+class FloatPoint;
+class FloatRect;
+class Frame;
+class HitTestRequest;
+class HitTestResult;
+class HTMLFrameSetElement;
+class KeyboardEvent;
+class MouseEventWithHitTestResults;
+class Node;
+class PlatformKeyboardEvent;
+class PlatformWheelEvent;
+class RenderLayer;
+class RenderObject;
+class RenderWidget;
+class Scrollbar;
+class String;
+class SVGElementInstance;
+class TextEvent;
+class VisiblePosition;
+class Widget;
+
+extern const int LinkDragHysteresis;
+extern const int ImageDragHysteresis;
+extern const int TextDragHysteresis;
+extern const int GeneralDragHysteresis;
+
+class EventHandler : Noncopyable {
+public:
+ EventHandler(Frame*);
+ ~EventHandler();
+
+ void clear();
+
+ void updateSelectionForMouseDrag();
+
+ Node* mousePressNode() const;
+ void setMousePressNode(PassRefPtr<Node>);
+
+ bool panScrollInProgress() { return m_panScrollInProgress; }
+ void setPanScrollInProgress(bool inProgress) { m_panScrollInProgress = inProgress; }
+
+ void stopAutoscrollTimer(bool rendererIsBeingDestroyed = false);
+ RenderObject* autoscrollRenderer() const;
+ void updateAutoscrollRenderer();
+
+ HitTestResult hitTestResultAtPoint(const IntPoint&, bool allowShadowContent, bool ignoreClipping = false);
+
+ bool mousePressed() const { return m_mousePressed; }
+ void setMousePressed(bool pressed) { m_mousePressed = pressed; }
+
+ void setCapturingMouseEventsNode(PassRefPtr<Node>);
+
+ bool updateDragAndDrop(const PlatformMouseEvent&, Clipboard*);
+ void cancelDragAndDrop(const PlatformMouseEvent&, Clipboard*);
+ bool performDragAndDrop(const PlatformMouseEvent&, Clipboard*);
+
+ void scheduleHoverStateUpdate();
+
+ void setResizingFrameSet(HTMLFrameSetElement*);
+
+ void resizeLayerDestroyed();
+
+ IntPoint currentMousePosition() const;
+
+ void setIgnoreWheelEvents(bool);
+
+ bool scrollOverflow(ScrollDirection, ScrollGranularity);
+
+ bool shouldDragAutoNode(Node*, const IntPoint&) const; // -webkit-user-drag == auto
+
+ bool tabsToLinks(KeyboardEvent*) const;
+ bool tabsToAllControls(KeyboardEvent*) const;
+
+ bool mouseDownMayStartSelect() const { return m_mouseDownMayStartSelect; }
+
+ bool mouseMoved(const PlatformMouseEvent&);
+
+ bool handleMousePressEvent(const PlatformMouseEvent&);
+ bool handleMouseMoveEvent(const PlatformMouseEvent&, HitTestResult* hoveredNode = 0);
+ bool handleMouseReleaseEvent(const PlatformMouseEvent&);
+ bool handleWheelEvent(PlatformWheelEvent&);
+
+ bool sendContextMenuEvent(const PlatformMouseEvent&);
+
+ void setMouseDownMayStartAutoscroll() { m_mouseDownMayStartAutoscroll = true; }
+
+ bool needsKeyboardEventDisambiguationQuirks() const;
+
+ static unsigned accessKeyModifiers();
+ bool handleAccessKey(const PlatformKeyboardEvent&);
+ bool keyEvent(const PlatformKeyboardEvent&);
+ void defaultKeyboardEventHandler(KeyboardEvent*);
+
+ bool handleTextInputEvent(const String& text, Event* underlyingEvent = 0,
+ bool isLineBreak = false, bool isBackTab = false);
+ void defaultTextInputEventHandler(TextEvent*);
+
+ bool eventMayStartDrag(const PlatformMouseEvent&) const;
+
+ void dragSourceMovedTo(const PlatformMouseEvent&);
+ void dragSourceEndedAt(const PlatformMouseEvent&, DragOperation);
+
+ void focusDocumentView();
+
+ void capsLockStateMayHaveChanged();
+
+ unsigned pendingFrameUnloadEventCount();
+ void addPendingFrameUnloadEventCount();
+ void removePendingFrameUnloadEventCount();
+ void clearPendingFrameUnloadEventCount();
+ unsigned pendingFrameBeforeUnloadEventCount();
+ void addPendingFrameBeforeUnloadEventCount();
+ void removePendingFrameBeforeUnloadEventCount();
+ void clearPendingFrameBeforeUnloadEventCount();
+
+ void sendResizeEvent();
+ void sendScrollEvent();
+
+#if PLATFORM(MAC)
+ PassRefPtr<KeyboardEvent> currentKeyboardEvent() const;
+
+ void mouseDown(NSEvent*);
+ void mouseDragged(NSEvent*);
+ void mouseUp(NSEvent*);
+ void mouseMoved(NSEvent*);
+ bool keyEvent(NSEvent*);
+ bool wheelEvent(NSEvent*);
+
+ void sendFakeEventsAfterWidgetTracking(NSEvent* initiatingEvent);
+
+ void setActivationEventNumber(int num) { m_activationEventNumber = num; }
+
+ NSEvent *currentNSEvent();
+#endif
+
+private:
+ struct EventHandlerDragState {
+ RefPtr<Node> m_dragSrc; // element that may be a drag source, for the current mouse gesture
+ bool m_dragSrcIsLink;
+ bool m_dragSrcIsImage;
+ bool m_dragSrcInSelection;
+ bool m_dragSrcMayBeDHTML;
+ bool m_dragSrcMayBeUA; // Are DHTML and/or the UserAgent allowed to drag out?
+ bool m_dragSrcIsDHTML;
+ RefPtr<Clipboard> m_dragClipboard; // used on only the source side of dragging
+ };
+ static EventHandlerDragState& dragState();
+ static const double TextDragDelay;
+
+ PassRefPtr<Clipboard> createDraggingClipboard() const;
+
+ bool eventActivatedView(const PlatformMouseEvent&) const;
+ void selectClosestWordFromMouseEvent(const MouseEventWithHitTestResults& event);
+ void selectClosestWordOrLinkFromMouseEvent(const MouseEventWithHitTestResults& event);
+
+ bool handleMouseDoubleClickEvent(const PlatformMouseEvent&);
+
+ bool handleMousePressEvent(const MouseEventWithHitTestResults&);
+ bool handleMousePressEventSingleClick(const MouseEventWithHitTestResults&);
+ bool handleMousePressEventDoubleClick(const MouseEventWithHitTestResults&);
+ bool handleMousePressEventTripleClick(const MouseEventWithHitTestResults&);
+ bool handleMouseDraggedEvent(const MouseEventWithHitTestResults&);
+ bool handleMouseReleaseEvent(const MouseEventWithHitTestResults&);
+
+ void handleKeyboardSelectionMovement(KeyboardEvent*);
+
+ Cursor selectCursor(const MouseEventWithHitTestResults&, Scrollbar*);
+ void setPanScrollCursor();
+
+ void hoverTimerFired(Timer<EventHandler>*);
+
+ static bool canMouseDownStartSelect(Node*);
+ static bool canMouseDragExtendSelect(Node*);
+
+ void handleAutoscroll(RenderObject*);
+ void startAutoscrollTimer();
+ void setAutoscrollRenderer(RenderObject*);
+ void autoscrollTimerFired(Timer<EventHandler>*);
+
+ void invalidateClick();
+
+ Node* nodeUnderMouse() const;
+
+ void updateMouseEventTargetNode(Node*, const PlatformMouseEvent&, bool fireMouseOverOut);
+ void fireMouseOverOut(bool fireMouseOver = true, bool fireMouseOut = true, bool updateLastNodeUnderMouse = true);
+
+ MouseEventWithHitTestResults prepareMouseEvent(const HitTestRequest&, const PlatformMouseEvent&);
+
+ bool dispatchMouseEvent(const AtomicString& eventType, Node* target, bool cancelable, int clickCount, const PlatformMouseEvent&, bool setUnder);
+ bool dispatchDragEvent(const AtomicString& eventType, Node* target, const PlatformMouseEvent&, Clipboard*);
+
+ void freeClipboard();
+
+ bool handleDrag(const MouseEventWithHitTestResults&);
+ bool handleMouseUp(const MouseEventWithHitTestResults&);
+ void clearDragState();
+
+ bool dispatchDragSrcEvent(const AtomicString& eventType, const PlatformMouseEvent&);
+
+ bool dragHysteresisExceeded(const FloatPoint&) const;
+ bool dragHysteresisExceeded(const IntPoint&) const;
+
+ bool passMousePressEventToSubframe(MouseEventWithHitTestResults&, Frame* subframe);
+ bool passMouseMoveEventToSubframe(MouseEventWithHitTestResults&, Frame* subframe, HitTestResult* hoveredNode = 0);
+ bool passMouseReleaseEventToSubframe(MouseEventWithHitTestResults&, Frame* subframe);
+
+ bool passSubframeEventToSubframe(MouseEventWithHitTestResults&, Frame* subframe, HitTestResult* hoveredNode = 0);
+
+ bool passMousePressEventToScrollbar(MouseEventWithHitTestResults&, Scrollbar*);
+
+ bool passWidgetMouseDownEventToWidget(const MouseEventWithHitTestResults&);
+ bool passWidgetMouseDownEventToWidget(RenderWidget*);
+
+ bool passMouseDownEventToWidget(Widget*);
+ bool passWheelEventToWidget(PlatformWheelEvent&, Widget*);
+
+ void defaultSpaceEventHandler(KeyboardEvent*);
+ void defaultTabEventHandler(KeyboardEvent*);
+
+ void allowDHTMLDrag(bool& flagDHTML, bool& flagUA) const;
+
+ // The following are called at the beginning of handleMouseUp and handleDrag.
+ // If they return true it indicates that they have consumed the event.
+#if PLATFORM(MAC)
+ bool eventLoopHandleMouseUp(const MouseEventWithHitTestResults&);
+ bool eventLoopHandleMouseDragged(const MouseEventWithHitTestResults&);
+ NSView *mouseDownViewIfStillGood();
+#else
+ bool eventLoopHandleMouseUp(const MouseEventWithHitTestResults&) { return false; }
+ bool eventLoopHandleMouseDragged(const MouseEventWithHitTestResults&) { return false; }
+#endif
+
+ bool invertSenseOfTabsToLinks(KeyboardEvent*) const;
+
+ void updateSelectionForMouseDrag(Node* targetNode, const IntPoint& localPoint);
+
+ Frame* m_frame;
+
+ bool m_mousePressed;
+ RefPtr<Node> m_mousePressNode;
+
+ bool m_mouseDownMayStartSelect;
+ bool m_mouseDownMayStartDrag;
+ bool m_mouseDownWasSingleClickInSelection;
+ bool m_beganSelectingText;
+
+ IntPoint m_dragStartPos;
+
+ IntPoint m_panScrollStartPos;
+ bool m_panScrollInProgress;
+
+ Timer<EventHandler> m_hoverTimer;
+
+ Timer<EventHandler> m_autoscrollTimer;
+ RenderObject* m_autoscrollRenderer;
+ bool m_autoscrollInProgress;
+ bool m_mouseDownMayStartAutoscroll;
+ bool m_mouseDownWasInSubframe;
+#if ENABLE(SVG)
+ bool m_svgPan;
+ RefPtr<SVGElementInstance> m_instanceUnderMouse;
+ RefPtr<SVGElementInstance> m_lastInstanceUnderMouse;
+#endif
+
+ RenderLayer* m_resizeLayer;
+
+ RefPtr<Node> m_capturingMouseEventsNode;
+
+ RefPtr<Node> m_nodeUnderMouse;
+ RefPtr<Node> m_lastNodeUnderMouse;
+ RefPtr<Frame> m_lastMouseMoveEventSubframe;
+ RefPtr<Scrollbar> m_lastScrollbarUnderMouse;
+
+ int m_clickCount;
+ RefPtr<Node> m_clickNode;
+
+ RefPtr<Node> m_dragTarget;
+
+ RefPtr<HTMLFrameSetElement> m_frameSetBeingResized;
+
+ IntSize m_offsetFromResizeCorner; // in the coords of m_resizeLayer
+
+ IntPoint m_currentMousePosition;
+ IntPoint m_mouseDownPos; // in our view's coords
+ double m_mouseDownTimestamp;
+ PlatformMouseEvent m_mouseDown;
+
+ unsigned m_pendingFrameUnloadEventCount;
+ unsigned m_pendingFrameBeforeUnloadEventCount;
+
+#if PLATFORM(MAC)
+ NSView *m_mouseDownView;
+ bool m_sendingEventToSubview;
+ int m_activationEventNumber;
+#endif
+
+};
+
+} // namespace WebCore
+
+#endif // EventHandler_h
+
« no previous file with comments | « third_party/WebKit/WebCore/page/AccessibilityRenderObject.cpp ('k') | third_party/WebKit/WebCore/page/EventHandler.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698