| Index: ui/events/gestures/gesture_provider_aura.cc
|
| diff --git a/ui/events/gestures/gesture_provider_aura.cc b/ui/events/gestures/gesture_provider_aura.cc
|
| index 10f7ab10bb39901b73277f5679b6487340d6964b..d028aef4b27649b034b8bc37c5155426d0410d23 100644
|
| --- a/ui/events/gestures/gesture_provider_aura.cc
|
| +++ b/ui/events/gestures/gesture_provider_aura.cc
|
| @@ -22,14 +22,15 @@ GestureProviderAura::GestureProviderAura(GestureProviderAuraClient* client)
|
|
|
| GestureProviderAura::~GestureProviderAura() {}
|
|
|
| -bool GestureProviderAura::OnTouchEvent(const TouchEvent& event) {
|
| - int index = pointer_state_.FindPointerIndexOfId(event.touch_id());
|
| +bool GestureProviderAura::OnTouchEvent(TouchEvent* event) {
|
| + DCHECK(event);
|
| + int index = pointer_state_.FindPointerIndexOfId(event->touch_id());
|
| bool pointer_id_is_active = index != -1;
|
|
|
| - if (event.type() == ET_TOUCH_PRESSED && pointer_id_is_active) {
|
| + if (event->type() == ET_TOUCH_PRESSED && pointer_id_is_active) {
|
| // Ignore touch press events if we already believe the pointer is down.
|
| return false;
|
| - } else if (event.type() != ET_TOUCH_PRESSED && !pointer_id_is_active) {
|
| + } else if (event->type() != ET_TOUCH_PRESSED && !pointer_id_is_active) {
|
| // We could have an active touch stream transfered to us, resulting in touch
|
| // move or touch up events without associated touch down events. Ignore
|
| // them.
|
| @@ -38,18 +39,22 @@ bool GestureProviderAura::OnTouchEvent(const TouchEvent& event) {
|
|
|
| // If this is a touchmove event, and it isn't different from the last
|
| // event, ignore it.
|
| - if (event.type() == ET_TOUCH_MOVED &&
|
| - event.x() == pointer_state_.GetX(index) &&
|
| - event.y() == pointer_state_.GetY(index)) {
|
| + if (event->type() == ET_TOUCH_MOVED &&
|
| + event->x() == pointer_state_.GetX(index) &&
|
| + event->y() == pointer_state_.GetY(index)) {
|
| return false;
|
| }
|
|
|
| - last_touch_event_latency_info_ = *event.latency();
|
| - pointer_state_.OnTouch(event);
|
| + last_touch_event_latency_info_ = *event->latency();
|
| + pointer_state_.OnTouch(*event);
|
|
|
| - bool result = filtered_gesture_provider_.OnTouchEvent(pointer_state_);
|
| - pointer_state_.CleanupRemovedTouchPoints(event);
|
| - return result;
|
| + auto result = filtered_gesture_provider_.OnTouchEvent(pointer_state_);
|
| + if (!result.succeeded)
|
| + return false;
|
| +
|
| + event->set_causes_scrolling(result.did_generate_scroll);
|
| + pointer_state_.CleanupRemovedTouchPoints(*event);
|
| + return true;
|
| }
|
|
|
| void GestureProviderAura::OnTouchEventAck(bool event_consumed) {
|
|
|