OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/renderer_host/input/gesture_event_queue.h" | 5 #include "content/browser/renderer_host/input/gesture_event_queue.h" |
6 | 6 |
7 #include "base/debug/trace_event.h" | 7 #include "base/debug/trace_event.h" |
8 #include "base/strings/string_number_conversions.h" | 8 #include "base/strings/string_number_conversions.h" |
9 #include "content/browser/renderer_host/input/input_router.h" | 9 #include "content/browser/renderer_host/input/input_router.h" |
10 #include "content/browser/renderer_host/input/touchpad_tap_suppression_controlle
r.h" | 10 #include "content/browser/renderer_host/input/touchpad_tap_suppression_controlle
r.h" |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
136 const GestureEventWithLatencyInfo& gesture_event) { | 136 const GestureEventWithLatencyInfo& gesture_event) { |
137 switch (gesture_event.event.type) { | 137 switch (gesture_event.event.type) { |
138 case WebInputEvent::GestureFlingCancel: | 138 case WebInputEvent::GestureFlingCancel: |
139 fling_in_progress_ = false; | 139 fling_in_progress_ = false; |
140 break; | 140 break; |
141 case WebInputEvent::GestureFlingStart: | 141 case WebInputEvent::GestureFlingStart: |
142 fling_in_progress_ = true; | 142 fling_in_progress_ = true; |
143 break; | 143 break; |
144 case WebInputEvent::GesturePinchUpdate: | 144 case WebInputEvent::GesturePinchUpdate: |
145 case WebInputEvent::GestureScrollUpdate: | 145 case WebInputEvent::GestureScrollUpdate: |
| 146 case WebInputEvent::GestureScrollUpdateWithoutPropagation: |
146 MergeOrInsertScrollAndPinchEvent(gesture_event); | 147 MergeOrInsertScrollAndPinchEvent(gesture_event); |
147 return ShouldHandleEventNow(); | 148 return ShouldHandleEventNow(); |
148 default: | 149 default: |
149 break; | 150 break; |
150 } | 151 } |
151 coalesced_gesture_events_.push_back(gesture_event); | 152 coalesced_gesture_events_.push_back(gesture_event); |
152 return ShouldHandleEventNow(); | 153 return ShouldHandleEventNow(); |
153 } | 154 } |
154 | 155 |
155 void GestureEventQueue::ProcessGestureAck(InputEventAckState ack_result, | 156 void GestureEventQueue::ProcessGestureAck(InputEventAckState ack_result, |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
337 } | 338 } |
338 | 339 |
339 bool GestureEventQueue::ShouldTryMerging( | 340 bool GestureEventQueue::ShouldTryMerging( |
340 const GestureEventWithLatencyInfo& new_event, | 341 const GestureEventWithLatencyInfo& new_event, |
341 const GestureEventWithLatencyInfo& event_in_queue) const { | 342 const GestureEventWithLatencyInfo& event_in_queue) const { |
342 DLOG_IF(WARNING, | 343 DLOG_IF(WARNING, |
343 new_event.event.timeStampSeconds < | 344 new_event.event.timeStampSeconds < |
344 event_in_queue.event.timeStampSeconds) | 345 event_in_queue.event.timeStampSeconds) |
345 << "Event time not monotonic?\n"; | 346 << "Event time not monotonic?\n"; |
346 return (event_in_queue.event.type == WebInputEvent::GestureScrollUpdate || | 347 return (event_in_queue.event.type == WebInputEvent::GestureScrollUpdate || |
347 event_in_queue.event.type == WebInputEvent::GesturePinchUpdate) && | 348 event_in_queue.event.type == |
348 event_in_queue.event.modifiers == new_event.event.modifiers && | 349 WebInputEvent::GestureScrollUpdateWithoutPropagation || |
349 event_in_queue.event.sourceDevice == new_event.event.sourceDevice; | 350 event_in_queue.event.type == WebInputEvent::GesturePinchUpdate) && |
| 351 event_in_queue.event.modifiers == new_event.event.modifiers && |
| 352 event_in_queue.event.sourceDevice == new_event.event.sourceDevice; |
350 } | 353 } |
351 | 354 |
352 gfx::Transform GestureEventQueue::GetTransformForEvent( | 355 gfx::Transform GestureEventQueue::GetTransformForEvent( |
353 const GestureEventWithLatencyInfo& gesture_event) const { | 356 const GestureEventWithLatencyInfo& gesture_event) const { |
354 gfx::Transform gesture_transform; | 357 gfx::Transform gesture_transform; |
355 if (gesture_event.event.type == WebInputEvent::GestureScrollUpdate) { | 358 if (gesture_event.event.type == WebInputEvent::GestureScrollUpdate || |
| 359 gesture_event.event.type == |
| 360 WebInputEvent::GestureScrollUpdateWithoutPropagation) { |
356 gesture_transform.Translate(gesture_event.event.data.scrollUpdate.deltaX, | 361 gesture_transform.Translate(gesture_event.event.data.scrollUpdate.deltaX, |
357 gesture_event.event.data.scrollUpdate.deltaY); | 362 gesture_event.event.data.scrollUpdate.deltaY); |
358 } else if (gesture_event.event.type == WebInputEvent::GesturePinchUpdate) { | 363 } else if (gesture_event.event.type == WebInputEvent::GesturePinchUpdate) { |
359 float scale = gesture_event.event.data.pinchUpdate.scale; | 364 float scale = gesture_event.event.data.pinchUpdate.scale; |
360 gesture_transform.Translate(-gesture_event.event.x, -gesture_event.event.y); | 365 gesture_transform.Translate(-gesture_event.event.x, -gesture_event.event.y); |
361 gesture_transform.Scale(scale,scale); | 366 gesture_transform.Scale(scale,scale); |
362 gesture_transform.Translate(gesture_event.event.x, gesture_event.event.y); | 367 gesture_transform.Translate(gesture_event.event.x, gesture_event.event.y); |
363 } | 368 } |
364 return gesture_transform; | 369 return gesture_transform; |
365 } | 370 } |
366 | 371 |
367 size_t GestureEventQueue::EventsInFlightCount() const { | 372 size_t GestureEventQueue::EventsInFlightCount() const { |
368 if (coalesced_gesture_events_.empty()) | 373 if (coalesced_gesture_events_.empty()) |
369 return 0; | 374 return 0; |
370 | 375 |
371 if (!ignore_next_ack_) | 376 if (!ignore_next_ack_) |
372 return 1; | 377 return 1; |
373 | 378 |
374 DCHECK_GT(coalesced_gesture_events_.size(), 1U); | 379 DCHECK_GT(coalesced_gesture_events_.size(), 1U); |
375 return 2; | 380 return 2; |
376 } | 381 } |
377 | 382 |
378 } // namespace content | 383 } // namespace content |
OLD | NEW |