Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(92)

Unified Diff: content/renderer/input/input_handler_proxy.cc

Issue 361143002: Impl thread smooth scrolling. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase. Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 02d62c6aa73657bca38166eaae1743ee8e6f5d6a..78f0c8b822fa125fe0f5c81e068989812d9a8475 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(
+ switches::kEnableSmoothScrolling);
}
InputHandlerProxy::~InputHandlerProxy() {}
@@ -207,6 +211,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) {
« no previous file with comments | « content/renderer/input/input_handler_proxy.h ('k') | content/renderer/input/input_handler_proxy_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698