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 86d78ec7872d931005a1abd5ba6d9b16b77e6615..e81ec52bf17849e7acb64859cbd5f279b3461728 100644 |
--- a/ui/events/gestures/gesture_provider_aura.cc |
+++ b/ui/events/gestures/gesture_provider_aura.cc |
@@ -15,21 +15,24 @@ namespace ui { |
GestureProviderAura::GestureProviderAura(GestureProviderAuraClient* client) |
: client_(client), |
- filtered_gesture_provider_(DefaultGestureProviderConfig(), this), |
+ filtered_gesture_provider_( |
+ GetGestureProviderConfig(GestureProviderConfigType::CURRENT_PLATFORM), |
+ this), |
handling_event_(false) { |
filtered_gesture_provider_.SetDoubleTapSupportForPlatformEnabled(false); |
} |
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 +41,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_); |
tdresser
2014/10/31 12:34:12
I'm not entirely convinced that this is a legitima
|
+ if (!result.succeeded) |
+ return false; |
+ |
+ event->set_may_cause_scrolling(result.did_generate_scroll); |
+ pointer_state_.CleanupRemovedTouchPoints(*event); |
+ return true; |
} |
void GestureProviderAura::OnTouchEventAck(bool event_consumed) { |