Index: ui/events/gesture_detection/filtered_gesture_provider.cc |
diff --git a/ui/events/gesture_detection/filtered_gesture_provider.cc b/ui/events/gesture_detection/filtered_gesture_provider.cc |
index 76ee5201d1adae15f650074a1ce9956e588d494c..55f4fad1f29a2254b7c374336e18e73c4b3871b5 100644 |
--- a/ui/events/gesture_detection/filtered_gesture_provider.cc |
+++ b/ui/events/gesture_detection/filtered_gesture_provider.cc |
@@ -16,14 +16,16 @@ FilteredGestureProvider::FilteredGestureProvider( |
: client_(client), |
gesture_provider_(config, this), |
gesture_filter_(this), |
- handling_event_(false) {} |
+ handling_event_(false), |
+ last_touch_event_did_generate_scroll_(false) { |
+} |
bool FilteredGestureProvider::OnTouchEvent(const MotionEvent& event) { |
DCHECK(!handling_event_); |
base::AutoReset<bool> handling_event(&handling_event_, true); |
pending_gesture_packet_ = GestureEventDataPacket::FromTouch(event); |
- |
+ last_touch_event_did_generate_scroll_ = false; |
if (!gesture_provider_.OnTouchEvent(event)) |
return false; |
@@ -59,8 +61,16 @@ const ui::MotionEvent* FilteredGestureProvider::GetCurrentDownEvent() const { |
return gesture_provider_.current_down_event(); |
} |
+bool FilteredGestureProvider::LastTouchEventDidGenerateScroll() const { |
+ return last_touch_event_did_generate_scroll_; |
+} |
+ |
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) { |
+ last_touch_event_did_generate_scroll_ = true; |
+ } |
pending_gesture_packet_.Push(event); |
return; |
} |