OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2009, 2010, 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2009, 2010, 2011 Apple Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
11 * documentation and/or other materials provided with the distribution. | 11 * documentation and/or other materials provided with the distribution. |
12 * | 12 * |
13 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY | 13 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY |
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR | 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR |
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | 18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY | 20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY |
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
24 */ | 24 */ |
25 | 25 |
26 #ifndef EventHandler_h | 26 #ifndef EventHandler_h |
27 #define EventHandler_h | 27 #define EventHandler_h |
28 | 28 |
29 #include "core/CoreExport.h" | 29 #include "core/CoreExport.h" |
| 30 #include "core/events/PointerIdManager.h" |
30 #include "core/events/TextEventInputType.h" | 31 #include "core/events/TextEventInputType.h" |
31 #include "core/layout/HitTestRequest.h" | 32 #include "core/layout/HitTestRequest.h" |
32 #include "core/page/DragActions.h" | 33 #include "core/page/DragActions.h" |
33 #include "core/page/EventWithHitTestResults.h" | 34 #include "core/page/EventWithHitTestResults.h" |
34 #include "core/style/ComputedStyleConstants.h" | 35 #include "core/style/ComputedStyleConstants.h" |
35 #include "platform/Cursor.h" | 36 #include "platform/Cursor.h" |
36 #include "platform/PlatformMouseEvent.h" | 37 #include "platform/PlatformMouseEvent.h" |
| 38 #include "platform/PlatformTouchPoint.h" |
37 #include "platform/Timer.h" | 39 #include "platform/Timer.h" |
38 #include "platform/UserGestureIndicator.h" | 40 #include "platform/UserGestureIndicator.h" |
39 #include "platform/geometry/LayoutPoint.h" | 41 #include "platform/geometry/LayoutPoint.h" |
40 #include "platform/heap/Handle.h" | 42 #include "platform/heap/Handle.h" |
41 #include "platform/scroll/ScrollTypes.h" | 43 #include "platform/scroll/ScrollTypes.h" |
42 #include "public/platform/WebFocusType.h" | 44 #include "public/platform/WebFocusType.h" |
43 #include "wtf/Forward.h" | 45 #include "wtf/Forward.h" |
44 #include "wtf/HashMap.h" | 46 #include "wtf/HashMap.h" |
45 #include "wtf/HashTraits.h" | 47 #include "wtf/HashTraits.h" |
46 #include "wtf/RefPtr.h" | 48 #include "wtf/RefPtr.h" |
(...skipping 10 matching lines...) Expand all Loading... |
57 class Event; | 59 class Event; |
58 class EventTarget; | 60 class EventTarget; |
59 template <typename EventType> | 61 template <typename EventType> |
60 class EventWithHitTestResults; | 62 class EventWithHitTestResults; |
61 class FloatPoint; | 63 class FloatPoint; |
62 class FloatQuad; | 64 class FloatQuad; |
63 class HTMLFrameSetElement; | 65 class HTMLFrameSetElement; |
64 class HitTestRequest; | 66 class HitTestRequest; |
65 class HitTestResult; | 67 class HitTestResult; |
66 class KeyboardEvent; | 68 class KeyboardEvent; |
| 69 class LayoutObject; |
67 class LocalFrame; | 70 class LocalFrame; |
68 class Node; | 71 class Node; |
69 class OptionalCursor; | 72 class OptionalCursor; |
70 class PlatformGestureEvent; | 73 class PlatformGestureEvent; |
71 class PlatformKeyboardEvent; | 74 class PlatformKeyboardEvent; |
72 class PlatformTouchEvent; | 75 class PlatformTouchEvent; |
73 class PlatformWheelEvent; | 76 class PlatformWheelEvent; |
74 class LayoutObject; | |
75 class ScrollableArea; | 77 class ScrollableArea; |
76 class Scrollbar; | 78 class Scrollbar; |
77 class ScrollState; | 79 class ScrollState; |
78 class SelectionController; | 80 class SelectionController; |
79 class TextEvent; | 81 class TextEvent; |
80 class WheelEvent; | 82 class WheelEvent; |
81 class Widget; | 83 class Widget; |
82 | 84 |
83 enum class DragInitiator; | 85 enum class DragInitiator; |
84 | 86 |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
309 bool panScrollInProgress() const; | 311 bool panScrollInProgress() const; |
310 void setLastKnownMousePosition(const PlatformMouseEvent&); | 312 void setLastKnownMousePosition(const PlatformMouseEvent&); |
311 | 313 |
312 bool shouldTopControlsConsumeScroll(FloatSize) const; | 314 bool shouldTopControlsConsumeScroll(FloatSize) const; |
313 | 315 |
314 // If the given element is a shadow host and its root has delegatesFocus=fal
se flag, | 316 // If the given element is a shadow host and its root has delegatesFocus=fal
se flag, |
315 // slide focus to its inner element. Returns true if the resulting focus is
different from | 317 // slide focus to its inner element. Returns true if the resulting focus is
different from |
316 // the given element. | 318 // the given element. |
317 bool slideFocusOnShadowHostIfNecessary(const Element&); | 319 bool slideFocusOnShadowHostIfNecessary(const Element&); |
318 | 320 |
| 321 using TouchInfo = struct { |
| 322 PlatformTouchPoint point; |
| 323 EventTarget* touchTarget; |
| 324 LocalFrame* targetFrame; |
| 325 FloatPoint adjustedPagePoint; |
| 326 FloatSize adjustedRadius; |
| 327 bool knownTarget; |
| 328 bool consumed; |
| 329 }; |
| 330 |
| 331 void dispatchPointerEventsForTouchEvent(const PlatformTouchEvent&, Vector<To
uchInfo>&); |
| 332 bool dispatchTouchEvents(const PlatformTouchEvent&, Vector<TouchInfo>&, bool
, bool); |
| 333 |
319 // NOTE: If adding a new field to this class please ensure that it is | 334 // NOTE: If adding a new field to this class please ensure that it is |
320 // cleared in |EventHandler::clear()|. | 335 // cleared in |EventHandler::clear()|. |
321 | 336 |
322 LocalFrame* const m_frame; | 337 LocalFrame* const m_frame; |
323 | 338 |
324 bool m_mousePressed; | 339 bool m_mousePressed; |
325 bool m_capturesDragging; | 340 bool m_capturesDragging; |
326 RefPtrWillBeMember<Node> m_mousePressNode; | 341 RefPtrWillBeMember<Node> m_mousePressNode; |
327 | 342 |
328 bool m_mouseDownMayStartDrag; | 343 bool m_mouseDownMayStartDrag; |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
381 // The target of each active touch point indexed by the touch ID. | 396 // The target of each active touch point indexed by the touch ID. |
382 using TouchTargetMap = WillBeHeapHashMap<unsigned, RefPtrWillBeMember<EventT
arget>, DefaultHash<unsigned>::Hash, WTF::UnsignedWithZeroKeyHashTraits<unsigned
>>; | 397 using TouchTargetMap = WillBeHeapHashMap<unsigned, RefPtrWillBeMember<EventT
arget>, DefaultHash<unsigned>::Hash, WTF::UnsignedWithZeroKeyHashTraits<unsigned
>>; |
383 TouchTargetMap m_targetForTouchID; | 398 TouchTargetMap m_targetForTouchID; |
384 | 399 |
385 // If set, the document of the active touch sequence. Unset if no touch sequ
ence active. | 400 // If set, the document of the active touch sequence. Unset if no touch sequ
ence active. |
386 RefPtrWillBeMember<Document> m_touchSequenceDocument; | 401 RefPtrWillBeMember<Document> m_touchSequenceDocument; |
387 RefPtr<UserGestureToken> m_touchSequenceUserGestureToken; | 402 RefPtr<UserGestureToken> m_touchSequenceUserGestureToken; |
388 | 403 |
389 bool m_touchPressed; | 404 bool m_touchPressed; |
390 | 405 |
| 406 PointerIdManager m_pointerIdManager; |
| 407 |
391 RefPtrWillBeMember<Node> m_scrollGestureHandlingNode; | 408 RefPtrWillBeMember<Node> m_scrollGestureHandlingNode; |
392 bool m_lastGestureScrollOverWidget; | 409 bool m_lastGestureScrollOverWidget; |
393 // The most recent element to scroll natively during this scroll | 410 // The most recent element to scroll natively during this scroll |
394 // sequence. Null if no native element has scrolled this scroll | 411 // sequence. Null if no native element has scrolled this scroll |
395 // sequence, or if the most recent element to scroll used scroll | 412 // sequence, or if the most recent element to scroll used scroll |
396 // customization. | 413 // customization. |
397 RefPtrWillBeMember<Node> m_previousGestureScrolledNode; | 414 RefPtrWillBeMember<Node> m_previousGestureScrolledNode; |
398 RefPtrWillBeMember<Scrollbar> m_scrollbarHandlingScrollGesture; | 415 RefPtrWillBeMember<Scrollbar> m_scrollbarHandlingScrollGesture; |
399 | 416 |
400 double m_maxMouseMovedDuration; | 417 double m_maxMouseMovedDuration; |
(...skipping 10 matching lines...) Expand all Loading... |
411 // scroll sequence in this frame, or any child frames. Only used | 428 // scroll sequence in this frame, or any child frames. Only used |
412 // with ScrollCustomization. If some delta has been consumed, a | 429 // with ScrollCustomization. If some delta has been consumed, a |
413 // scroll which shouldn't propagate can't cause any element to | 430 // scroll which shouldn't propagate can't cause any element to |
414 // scroll other than the |m_previousGestureScrolledNode|. | 431 // scroll other than the |m_previousGestureScrolledNode|. |
415 bool m_deltaConsumedForScrollSequence; | 432 bool m_deltaConsumedForScrollSequence; |
416 }; | 433 }; |
417 | 434 |
418 } // namespace blink | 435 } // namespace blink |
419 | 436 |
420 #endif // EventHandler_h | 437 #endif // EventHandler_h |
OLD | NEW |