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 |