| 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 |