OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "core/input/TouchEventManager.h" | 5 #include "core/input/TouchEventManager.h" |
6 | 6 |
7 #include "core/dom/Document.h" | 7 #include "core/dom/Document.h" |
8 #include "core/events/TouchEvent.h" | 8 #include "core/events/TouchEvent.h" |
9 #include "core/frame/EventHandlerRegistry.h" | 9 #include "core/frame/EventHandlerRegistry.h" |
10 #include "core/frame/FrameHost.h" | 10 #include "core/frame/FrameHost.h" |
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
411 return true; | 411 return true; |
412 } | 412 } |
413 | 413 |
414 WebInputEventResult TouchEventManager::handleTouchEvent( | 414 WebInputEventResult TouchEventManager::handleTouchEvent( |
415 const PlatformTouchEvent& event, | 415 const PlatformTouchEvent& event, |
416 HeapVector<TouchInfo>& touchInfos) | 416 HeapVector<TouchInfo>& touchInfos) |
417 { | 417 { |
418 if (!reHitTestTouchPointsIfNeeded(event, touchInfos)) | 418 if (!reHitTestTouchPointsIfNeeded(event, touchInfos)) |
419 return WebInputEventResult::NotHandled; | 419 return WebInputEventResult::NotHandled; |
420 | 420 |
421 // Note that the disposition of any pointer events affects only the generati
on of touch | |
422 // events. If all pointer events were handled (and hence no touch events wer
e fired), that | |
423 // is still equivalent to the touch events going unhandled because pointer e
vent handler | |
424 // don't block scroll gesture generation. | |
425 | |
426 // TODO(crbug.com/507408): If PE handlers always call preventDefault, we won
't see TEs until after | |
427 // scrolling starts because the scrolling would suppress upcoming PEs. This
sudden "break" in TE | |
428 // suppression can make the visible TEs inconsistent (e.g. touchmove without
a touchstart). | |
429 | |
430 bool allTouchesReleased = true; | 421 bool allTouchesReleased = true; |
431 for (const auto& point : event.touchPoints()) { | 422 for (const auto& point : event.touchPoints()) { |
432 if (point.state() != PlatformTouchPoint::TouchReleased | 423 if (point.state() != PlatformTouchPoint::TouchReleased |
433 && point.state() != PlatformTouchPoint::TouchCancelled) | 424 && point.state() != PlatformTouchPoint::TouchCancelled) |
434 allTouchesReleased = false; | 425 allTouchesReleased = false; |
435 } | 426 } |
436 | 427 |
437 // Whether a touch should be considered a "user gesture" or not is a tricky
question. | 428 // Whether a touch should be considered a "user gesture" or not is a tricky
question. |
438 // https://docs.google.com/document/d/1oF1T3O7_E4t1PYHV6gyCwHxOi3ystm0eSL5xZ
u7nvOg/edit# | 429 // https://docs.google.com/document/d/1oF1T3O7_E4t1PYHV6gyCwHxOi3ystm0eSL5xZ
u7nvOg/edit# |
439 | 430 |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
487 } | 478 } |
488 | 479 |
489 DEFINE_TRACE(TouchEventManager) | 480 DEFINE_TRACE(TouchEventManager) |
490 { | 481 { |
491 visitor->trace(m_frame); | 482 visitor->trace(m_frame); |
492 visitor->trace(m_touchSequenceDocument); | 483 visitor->trace(m_touchSequenceDocument); |
493 visitor->trace(m_targetForTouchID); | 484 visitor->trace(m_targetForTouchID); |
494 } | 485 } |
495 | 486 |
496 } // namespace blink | 487 } // namespace blink |
OLD | NEW |