Index: content/browser/renderer_host/input/mouse_wheel_event_queue.cc |
diff --git a/content/browser/renderer_host/input/mouse_wheel_event_queue.cc b/content/browser/renderer_host/input/mouse_wheel_event_queue.cc |
index 7f0075bec63e3d82431b010d2dd00573f6fb3a35..6d5e787bea00ee51987a460c5a108eef2cab3ab5 100644 |
--- a/content/browser/renderer_host/input/mouse_wheel_event_queue.cc |
+++ b/content/browser/renderer_host/input/mouse_wheel_event_queue.cc |
@@ -124,8 +124,9 @@ void MouseWheelEventQueue::OnGestureScrollEvent( |
// wheel based cancel current one by sending a ScrollEnd. |
if (scroll_end_timer_.IsRunning() && |
gesture_event.event.sourceDevice != blink::WebGestureDeviceTouchpad) { |
+ base::Closure task = scroll_end_timer_.user_task(); |
scroll_end_timer_.Reset(); |
- SendScrollEnd(); |
+ task.Run(); |
} |
scrolling_device_ = gesture_event.event.sourceDevice; |
} else if (scrolling_device_ == gesture_event.event.sourceDevice && |
@@ -153,11 +154,13 @@ void MouseWheelEventQueue::TryForwardNextEventToRenderer() { |
client_->SendMouseWheelEventImmediately(send_event); |
} |
-void MouseWheelEventQueue::SendScrollEnd() { |
+void MouseWheelEventQueue::SendScrollEnd( |
+ blink::WebGestureEvent::ScrollUnits units) { |
GestureEventWithLatencyInfo scroll_end; |
scroll_end.event.type = WebInputEvent::GestureScrollEnd; |
scroll_end.event.sourceDevice = blink::WebGestureDeviceTouchpad; |
scroll_end.event.resendingPluginId = -1; |
+ scroll_end.event.data.scrollEnd.deltaUnits = units; |
SendGesture(scroll_end); |
} |
@@ -181,9 +184,12 @@ void MouseWheelEventQueue::SendGesture( |
if (scroll_end_timer_.IsRunning()) { |
scroll_end_timer_.Reset(); |
} else { |
- scroll_end_timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds( |
- scroll_transaction_ms_), |
- this, &MouseWheelEventQueue::SendScrollEnd); |
+ scroll_end_timer_.Start( |
+ FROM_HERE, |
+ base::TimeDelta::FromMilliseconds(scroll_transaction_ms_), |
+ base::Bind(&MouseWheelEventQueue::SendScrollEnd, |
+ base::Unretained(this), |
+ gesture.event.data.scrollUpdate.deltaUnits)); |
} |
break; |
case WebInputEvent::GestureScrollEnd: |