Chromium Code Reviews| Index: content/browser/renderer_host/input/input_router_impl.cc |
| diff --git a/content/browser/renderer_host/input/input_router_impl.cc b/content/browser/renderer_host/input/input_router_impl.cc |
| index 603adb05821f9e645bbaa97ea9682fc6bf450afc..c19948a55e10d8913e6a5214875a69444d9e52ec 100644 |
| --- a/content/browser/renderer_host/input/input_router_impl.cc |
| +++ b/content/browser/renderer_host/input/input_router_impl.cc |
| @@ -136,11 +136,14 @@ void InputRouterImpl::SendWheelEvent(const QueuedWheelEvent& wheel_event) { |
| // dropping the old event, as for mouse moves) results in very slow |
| // scrolling on the Mac (on which many, very small wheel events are sent). |
| // Note that we can't coalesce wheel events for pinches because the GEQ |
| - // expects one ACK for each (but it's fine to coalesce non-pinch wheels |
| - // into a pinch one). Note that the GestureEventQueue ensures we only |
| - // ever have a single pinch event queued here. |
| + // expects one ACK for each. But such events always have canScroll==false |
| + // and hasPreciseDeltas=true, which should never happen for a real wheel |
| + // event and so coalescing shouldn't occur. Note that the |
|
no sievers
2015/01/20 20:27:48
Should there be a DCHECK() for this assumption?
Rick Byers
2015/01/21 15:49:13
Good idea, I think we _should_ be able to say this
lanwei
2015/02/04 03:25:58
Done.
|
| + // GestureEventQueue ensures we only ever have a single pinch event queued |
| + // here. |
| if (coalesced_mouse_wheel_events_.empty() || |
| - wheel_event.synthesized_from_pinch || |
| + wheel_event.synthesized_from_pinch != |
| + coalesced_mouse_wheel_events_.back().synthesized_from_pinch || |
| !coalesced_mouse_wheel_events_.back().event.CanCoalesceWith( |
| wheel_event.event)) { |
| coalesced_mouse_wheel_events_.push_back(wheel_event); |
| @@ -455,7 +458,7 @@ void InputRouterImpl::SendSyntheticWheelEventForPinch( |
| wheelEvent.wheelTicksX = 0; |
| wheelEvent.wheelTicksY = |
| pinch_event.event.data.pinchUpdate.scale > 1 ? 1 : -1; |
| - |
| + wheelEvent.canScroll = false; |
| SendWheelEvent(QueuedWheelEvent( |
| MouseWheelEventWithLatencyInfo(wheelEvent, pinch_event.latency), true)); |
| } |