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 6d5e787bea00ee51987a460c5a108eef2cab3ab5..48dbad231bb553d57a13efc79263eecab3a69f64 100644 |
--- a/content/browser/renderer_host/input/mouse_wheel_event_queue.cc |
+++ b/content/browser/renderer_host/input/mouse_wheel_event_queue.cc |
@@ -85,6 +85,10 @@ void MouseWheelEventQueue::ProcessMouseWheelAck( |
(scrolling_device_ == blink::WebGestureDeviceUninitialized || |
scrolling_device_ == blink::WebGestureDeviceTouchpad)) { |
GestureEventWithLatencyInfo scroll_update; |
+ scroll_update.event.x = event_sent_for_gesture_ack_->event.x; |
+ scroll_update.event.y = event_sent_for_gesture_ack_->event.y; |
+ scroll_update.event.globalX = event_sent_for_gesture_ack_->event.globalX; |
+ scroll_update.event.globalY = event_sent_for_gesture_ack_->event.globalY; |
scroll_update.event.type = WebInputEvent::GestureScrollUpdate; |
scroll_update.event.sourceDevice = blink::WebGestureDeviceTouchpad; |
scroll_update.event.resendingPluginId = -1; |
@@ -154,13 +158,18 @@ void MouseWheelEventQueue::TryForwardNextEventToRenderer() { |
client_->SendMouseWheelEventImmediately(send_event); |
} |
-void MouseWheelEventQueue::SendScrollEnd( |
- blink::WebGestureEvent::ScrollUnits units) { |
+void MouseWheelEventQueue::SendScrollEnd(blink::WebGestureEvent update_event) { |
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; |
+ scroll_end.event.data.scrollEnd.deltaUnits = |
+ update_event.data.scrollUpdate.deltaUnits; |
+ scroll_end.event.x = update_event.x; |
+ scroll_end.event.y = update_event.y; |
+ scroll_end.event.globalX = update_event.globalX; |
+ scroll_end.event.globalY = update_event.globalY; |
+ |
SendGesture(scroll_end); |
} |
@@ -170,6 +179,10 @@ void MouseWheelEventQueue::SendGesture( |
case WebInputEvent::GestureScrollUpdate: |
if (needs_scroll_begin_) { |
GestureEventWithLatencyInfo scroll_begin(gesture); |
+ scroll_begin.event.x = gesture.event.x; |
+ scroll_begin.event.y = gesture.event.y; |
+ scroll_begin.event.globalX = gesture.event.globalX; |
+ scroll_begin.event.globalY = gesture.event.globalY; |
scroll_begin.event.type = WebInputEvent::GestureScrollBegin; |
scroll_begin.event.data.scrollBegin.deltaXHint = |
gesture.event.data.scrollUpdate.deltaX; |
@@ -188,8 +201,7 @@ void MouseWheelEventQueue::SendGesture( |
FROM_HERE, |
base::TimeDelta::FromMilliseconds(scroll_transaction_ms_), |
base::Bind(&MouseWheelEventQueue::SendScrollEnd, |
- base::Unretained(this), |
- gesture.event.data.scrollUpdate.deltaUnits)); |
+ base::Unretained(this), gesture.event)); |
} |
break; |
case WebInputEvent::GestureScrollEnd: |