Chromium Code Reviews| Index: content/browser/frame_host/render_widget_host_view_guest.cc |
| diff --git a/content/browser/frame_host/render_widget_host_view_guest.cc b/content/browser/frame_host/render_widget_host_view_guest.cc |
| index d433e64c164122f7deae254bb6a39da4f45014db..7a120f174318e966af87ae02518243d0cf47c144 100644 |
| --- a/content/browser/frame_host/render_widget_host_view_guest.cc |
| +++ b/content/browser/frame_host/render_widget_host_view_guest.cc |
| @@ -555,6 +555,23 @@ void RenderWidgetHostViewGuest::OnHandleInputEvent( |
| RenderWidgetHostImpl* embedder, |
| int browser_plugin_instance_id, |
| const blink::WebInputEvent* event) { |
| + // WebMouseWheelEvents go into a queue, and may not be forwarded to the |
| + // renderer until after this method goes out of scope. Therefore we need to |
| + // explicitly remove the additional device scale factor from the coordinates |
| + // before allowing the event to be queued. |
| + if (event->type == blink::WebInputEvent::MouseWheel) { |
|
oshima
2016/07/19 21:40:48
you also need to check "IsZoomForDSFEnabled()".
A
|
| + blink::WebMouseWheelEvent rescaled_event = |
| + *static_cast<const blink::WebMouseWheelEvent*>(event); |
| + rescaled_event.x /= current_device_scale_factor(); |
| + rescaled_event.y /= current_device_scale_factor(); |
| + rescaled_event.deltaX /= current_device_scale_factor(); |
| + rescaled_event.deltaY /= current_device_scale_factor(); |
| + rescaled_event.wheelTicksX /= current_device_scale_factor(); |
| + rescaled_event.wheelTicksY /= current_device_scale_factor(); |
| + host_->ForwardWheelEvent(rescaled_event); |
| + return; |
| + } |
| + |
| ScopedInputScaleDisabler disable(host_, current_device_scale_factor()); |
| if (blink::WebInputEvent::isMouseEventType(event->type)) { |
| // The mouse events for BrowserPlugin are modified by all |
| @@ -578,12 +595,6 @@ void RenderWidgetHostViewGuest::OnHandleInputEvent( |
| return; |
| } |
| - if (event->type == blink::WebInputEvent::MouseWheel) { |
| - host_->ForwardWheelEvent( |
| - *static_cast<const blink::WebMouseWheelEvent*>(event)); |
| - return; |
| - } |
| - |
| if (blink::WebInputEvent::isKeyboardEventType(event->type)) { |
| if (!embedder->GetLastKeyboardEvent()) |
| return; |