Index: content/common/input/event_with_latency_info.cc |
diff --git a/content/common/input/event_with_latency_info.cc b/content/common/input/event_with_latency_info.cc |
index bafa99e15ad2befeed972416825e382cf57e45e5..7cae5380edac8ba8e03a307ef362d25270997694 100644 |
--- a/content/common/input/event_with_latency_info.cc |
+++ b/content/common/input/event_with_latency_info.cc |
@@ -262,16 +262,17 @@ void Coalesce(const blink::WebInputEvent& event_to_coalesce, |
} // namespace internal |
ScopedWebInputEventWithLatencyInfo::ScopedWebInputEventWithLatencyInfo( |
- ui::ScopedWebInputEvent event, |
+ blink::CoalescedWebInputEvent::ScopedWebInputEvent event, |
const ui::LatencyInfo& latency_info) |
- : event_(std::move(event)), latency_(latency_info) { |
-} |
+ : event_(new blink::CoalescedWebInputEvent(std::move(event))), |
+ latency_(latency_info) {} |
ScopedWebInputEventWithLatencyInfo::~ScopedWebInputEventWithLatencyInfo() {} |
bool ScopedWebInputEventWithLatencyInfo::CanCoalesceWith( |
const ScopedWebInputEventWithLatencyInfo& other) const { |
- return internal::CanCoalesce(other.event(), event()); |
+ return internal::CanCoalesce(other.coalescedEvent().event(), |
+ coalescedEvent().event()); |
} |
void ScopedWebInputEventWithLatencyInfo::CoalesceWith( |
@@ -282,9 +283,14 @@ void ScopedWebInputEventWithLatencyInfo::CoalesceWith( |
// New events get coalesced into older events, and the newer timestamp |
// should always be preserved. |
- const double time_stamp_seconds = other.event().timeStampSeconds; |
- internal::Coalesce(other.event(), event_.get()); |
- event_->timeStampSeconds = time_stamp_seconds; |
+ const double time_stamp_seconds = |
+ other.coalescedEvent().event().timeStampSeconds; |
+ |
+ // The new event will have no coalesced events itself. So we do not copy all |
+ // the coalesced event over here. |
+ event_->addCoalescedEvent(other.coalescedEvent().event()); |
+ internal::Coalesce(other.coalescedEvent().event(), event_->eventPointer()); |
+ event_->eventPointer()->timeStampSeconds = time_stamp_seconds; |
// When coalescing two input events, we keep the oldest LatencyInfo |
// since it will represent the longest latency. |
@@ -292,11 +298,13 @@ void ScopedWebInputEventWithLatencyInfo::CoalesceWith( |
other.latency_.set_coalesced(); |
} |
-const blink::WebInputEvent& ScopedWebInputEventWithLatencyInfo::event() const { |
+const blink::CoalescedWebInputEvent& |
+ScopedWebInputEventWithLatencyInfo::coalescedEvent() const { |
return *event_; |
} |
-blink::WebInputEvent& ScopedWebInputEventWithLatencyInfo::event() { |
+blink::CoalescedWebInputEvent& |
+ScopedWebInputEventWithLatencyInfo::coalescedEvent() { |
return *event_; |
} |