| Index: ui/events/gesture_detection/gesture_event_data_packet.cc
|
| diff --git a/ui/events/gesture_detection/gesture_event_data_packet.cc b/ui/events/gesture_detection/gesture_event_data_packet.cc
|
| index 265300cc1fcdfb7bf0c137ce0e2d09b7790b464c..04cec5ca34ce1f320427c68c597a5f571496f91e 100644
|
| --- a/ui/events/gesture_detection/gesture_event_data_packet.cc
|
| +++ b/ui/events/gesture_detection/gesture_event_data_packet.cc
|
| @@ -33,18 +33,23 @@ GestureEventDataPacket::GestureSource ToGestureSource(
|
| } // namespace
|
|
|
| GestureEventDataPacket::GestureEventDataPacket()
|
| - : gesture_source_(UNDEFINED) {
|
| + : gesture_source_(UNDEFINED),
|
| + ack_state_(AckState::PENDING),
|
| + unique_touch_event_id_(0) {
|
| }
|
|
|
| GestureEventDataPacket::GestureEventDataPacket(
|
| base::TimeTicks timestamp,
|
| GestureSource source,
|
| const gfx::PointF& touch_location,
|
| - const gfx::PointF& raw_touch_location)
|
| + const gfx::PointF& raw_touch_location,
|
| + uint32 unique_touch_event_id)
|
| : timestamp_(timestamp),
|
| touch_location_(touch_location),
|
| raw_touch_location_(raw_touch_location),
|
| - gesture_source_(source) {
|
| + gesture_source_(source),
|
| + ack_state_(AckState::PENDING),
|
| + unique_touch_event_id_(unique_touch_event_id) {
|
| DCHECK_NE(gesture_source_, UNDEFINED);
|
| }
|
|
|
| @@ -54,7 +59,9 @@ GestureEventDataPacket::GestureEventDataPacket(
|
| gestures_(other.gestures_),
|
| touch_location_(other.touch_location_),
|
| raw_touch_location_(other.raw_touch_location_),
|
| - gesture_source_(other.gesture_source_) {
|
| + gesture_source_(other.gesture_source_),
|
| + ack_state_(AckState::PENDING),
|
| + unique_touch_event_id_(other.unique_touch_event_id_) {
|
| }
|
|
|
| GestureEventDataPacket::~GestureEventDataPacket() {
|
| @@ -67,6 +74,8 @@ GestureEventDataPacket& GestureEventDataPacket::operator=(
|
| touch_location_ = other.touch_location_;
|
| raw_touch_location_ = other.raw_touch_location_;
|
| gestures_ = other.gestures_;
|
| + ack_state_ = other.ack_state_;
|
| + unique_touch_event_id_ = other.unique_touch_event_id_;
|
| return *this;
|
| }
|
|
|
| @@ -77,20 +86,24 @@ void GestureEventDataPacket::Push(const GestureEventData& gesture) {
|
|
|
| GestureEventDataPacket GestureEventDataPacket::FromTouch(
|
| const ui::MotionEvent& touch) {
|
| - return GestureEventDataPacket(touch.GetEventTime(),
|
| - ToGestureSource(touch),
|
| + return GestureEventDataPacket(touch.GetEventTime(), ToGestureSource(touch),
|
| gfx::PointF(touch.GetX(), touch.GetY()),
|
| - gfx::PointF(touch.GetRawX(), touch.GetRawY()));
|
| + gfx::PointF(touch.GetRawX(), touch.GetRawY()),
|
| + touch.GetUniqueEventId());
|
| }
|
|
|
| GestureEventDataPacket GestureEventDataPacket::FromTouchTimeout(
|
| const GestureEventData& gesture) {
|
| - GestureEventDataPacket packet(gesture.time,
|
| - TOUCH_TIMEOUT,
|
| + GestureEventDataPacket packet(gesture.time, TOUCH_TIMEOUT,
|
| gfx::PointF(gesture.x, gesture.y),
|
| - gfx::PointF(gesture.raw_x, gesture.raw_y));
|
| + gfx::PointF(gesture.raw_x, gesture.raw_y), 0);
|
| packet.Push(gesture);
|
| return packet;
|
| }
|
|
|
| +void GestureEventDataPacket::Ack(bool event_consumed) {
|
| + DCHECK_EQ(static_cast<int>(ack_state_), static_cast<int>(AckState::PENDING));
|
| + ack_state_ = event_consumed ? AckState::CONSUMED : AckState::UNCONSUMED;
|
| +}
|
| +
|
| } // namespace ui
|
|
|