diff options
Diffstat (limited to 'chromium/ui/events/gesture_detection/filtered_gesture_provider.cc')
-rw-r--r-- | chromium/ui/events/gesture_detection/filtered_gesture_provider.cc | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/chromium/ui/events/gesture_detection/filtered_gesture_provider.cc b/chromium/ui/events/gesture_detection/filtered_gesture_provider.cc index e616e7bbd64..be4b197994a 100644 --- a/chromium/ui/events/gesture_detection/filtered_gesture_provider.cc +++ b/chromium/ui/events/gesture_detection/filtered_gesture_provider.cc @@ -6,12 +6,13 @@ #include "base/auto_reset.h" #include "base/logging.h" +#include "ui/events/blink/blink_event_util.h" #include "ui/events/gesture_detection/motion_event.h" namespace ui { FilteredGestureProvider::TouchHandlingResult::TouchHandlingResult() - : succeeded(false), did_generate_scroll(false) { + : succeeded(false), moved_beyond_slop_region(false) { } FilteredGestureProvider::FilteredGestureProvider( @@ -21,7 +22,7 @@ FilteredGestureProvider::FilteredGestureProvider( gesture_provider_(config, this), gesture_filter_(this), handling_event_(false), - last_touch_event_did_generate_scroll_(false) { + any_touch_moved_beyond_slop_region_(false) { } FilteredGestureProvider::TouchHandlingResult @@ -30,7 +31,10 @@ FilteredGestureProvider::OnTouchEvent(const MotionEvent& event) { base::AutoReset<bool> handling_event(&handling_event_, true); pending_gesture_packet_ = GestureEventDataPacket::FromTouch(event); - last_touch_event_did_generate_scroll_ = false; + + if (event.GetAction() == MotionEvent::ACTION_DOWN) + any_touch_moved_beyond_slop_region_ = false; + if (!gesture_provider_.OnTouchEvent(event)) return TouchHandlingResult(); @@ -43,7 +47,7 @@ FilteredGestureProvider::OnTouchEvent(const MotionEvent& event) { TouchHandlingResult result; result.succeeded = true; - result.did_generate_scroll = last_touch_event_did_generate_scroll_; + result.moved_beyond_slop_region = any_touch_moved_beyond_slop_region_; return result; } @@ -76,11 +80,9 @@ const ui::MotionEvent* FilteredGestureProvider::GetCurrentDownEvent() const { void FilteredGestureProvider::OnGestureEvent(const GestureEventData& event) { if (handling_event_) { - if (event.details.type() == ui::ET_GESTURE_SCROLL_BEGIN || - event.details.type() == ui::ET_GESTURE_SCROLL_UPDATE || - event.details.type() == ui::ET_SCROLL_FLING_START) { - last_touch_event_did_generate_scroll_ = true; - } + if (event.details.type() == ui::ET_GESTURE_SCROLL_BEGIN) + any_touch_moved_beyond_slop_region_ = true; + pending_gesture_packet_.Push(event); return; } |