Chromium Code Reviews| Index: content/renderer/input/input_handler_proxy.cc |
| diff --git a/content/renderer/input/input_handler_proxy.cc b/content/renderer/input/input_handler_proxy.cc |
| index 951cec10d9717effe410fe7ab0abfa3ba5620588..f37ad750f2f3d1e11db3ddf692351115c4d30b47 100644 |
| --- a/content/renderer/input/input_handler_proxy.cc |
| +++ b/content/renderer/input/input_handler_proxy.cc |
| @@ -5,11 +5,13 @@ |
| #include "content/renderer/input/input_handler_proxy.h" |
| #include "base/auto_reset.h" |
| +#include "base/command_line.h" |
| #include "base/debug/trace_event.h" |
| #include "base/logging.h" |
| #include "base/metrics/histogram.h" |
| #include "content/common/input/did_overscroll_params.h" |
| #include "content/common/input/web_input_event_traits.h" |
| +#include "content/public/common/content_switches.h" |
| #include "content/renderer/input/input_handler_proxy_client.h" |
| #include "third_party/WebKit/public/platform/Platform.h" |
| #include "third_party/WebKit/public/web/WebInputEvent.h" |
| @@ -157,6 +159,8 @@ InputHandlerProxy::InputHandlerProxy(cc::InputHandler* input_handler, |
| has_fling_animation_started_(false) { |
| DCHECK(client); |
| input_handler_->BindToClient(this); |
| + smooth_scroll_enabled_ = CommandLine::ForCurrentProcess()->HasSwitch( |
|
jdduke (slow)
2014/07/08 21:26:20
Apologies for the drive-by, but why do we need a f
jdduke (slow)
2014/07/08 21:28:34
Hmm, disregard that, it looks like you're re-using
|
| + switches::kEnableSmoothScrolling); |
| } |
| InputHandlerProxy::~InputHandlerProxy() {} |
| @@ -208,6 +212,20 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleInputEvent( |
| // event handlers. Forward to the main thread. |
| return DID_NOT_HANDLE; |
| } |
| + if (smooth_scroll_enabled_) { |
| + cc::InputHandler::ScrollStatus scroll_status = |
| + input_handler_->ScrollAnimated( |
| + gfx::Point(wheel_event.x, wheel_event.y), |
| + gfx::Vector2dF(-wheel_event.deltaX, -wheel_event.deltaY)); |
| + switch (scroll_status) { |
| + case cc::InputHandler::ScrollStarted: |
| + return DID_HANDLE; |
| + case cc::InputHandler::ScrollIgnored: |
| + return DROP_EVENT; |
| + default: |
| + return DID_NOT_HANDLE; |
| + } |
| + } |
| cc::InputHandler::ScrollStatus scroll_status = input_handler_->ScrollBegin( |
| gfx::Point(wheel_event.x, wheel_event.y), cc::InputHandler::Wheel); |
| switch (scroll_status) { |