From b68d7ce5e7e3466409c942c514064d45b31ee666 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen <allan.jensen@digia.com> Date: Fri, 22 Aug 2014 10:58:53 +0200 Subject: [PATCH] <third_party/WebKit> Apply Qt defaults to scroll animations This patch applies the Qt scroll animation configuration from WebKit. This makes the scrolling more responsive and smooth when used with touchpad scroll gestures or free spinning scroll wheels. Change-Id: I2f17185f3e95c6bc84608cc4c3945dba2d67faa8 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com> --- .../platform/scroll/ScrollAnimatorNone.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/chromium/third_party/WebKit/Source/platform/scroll/ScrollAnimatorNone.cpp b/chromium/third_party/WebKit/Source/platform/scroll/ScrollAnimatorNone.cpp index 3a4e7ed612e..df7c3cc3336 100644 --- a/chromium/third_party/WebKit/Source/platform/scroll/ScrollAnimatorNone.cpp +++ b/chromium/third_party/WebKit/Source/platform/scroll/ScrollAnimatorNone.cpp @@ -381,6 +381,7 @@ ScrollAnimatorNone::~ScrollAnimatorNone() ScrollAnimatorNone::Parameters ScrollAnimatorNone::parametersForScrollGranularity(ScrollGranularity granularity) const { +#if !defined(TOOLKIT_QT) switch (granularity) { case ScrollByDocument: return Parameters(true, 20 * kTickTime, 10 * kTickTime, Cubic, 10 * kTickTime, Cubic, 10 * kTickTime, Linear, 1); @@ -393,6 +394,23 @@ ScrollAnimatorNone::Parameters ScrollAnimatorNone::parametersForScrollGranularit default: ASSERT_NOT_REACHED(); } +#else + // This is a slightly different strategy for the animation with a steep attack curve and natural release curve. + // The fast acceleration makes the animation look more responsive to user input. The natural release curve makes + // the animation compatible with that of free-spinning mouse-wheel or emulated scroll on release by touchpads. + switch (granularity) { + case ScrollByDocument: + return Parameters(true, 20 * kTickTime, 10 * kTickTime, Cubic, 6 * kTickTime, Quadratic, 10 * kTickTime, Quadratic, 30 * kTickTime); + case ScrollByLine: + return Parameters(true, 6 * kTickTime, 5 * kTickTime, Cubic, 1 * kTickTime, Quadratic, 4 * kTickTime, Linear, 12 * kTickTime); + case ScrollByPage: + return Parameters(true, 12 * kTickTime, 10 * kTickTime, Cubic, 3 * kTickTime, Quadratic, 6 * kTickTime, Linear, 24 * kTickTime); + case ScrollByPixel: + return Parameters(true, 8 * kTickTime, 3 * kTickTime, Cubic, 2 * kTickTime, Quadratic, 5 * kTickTime, Quadratic, 16 * kTickTime); + default: + ASSERT_NOT_REACHED(); + } +#endif return Parameters(); } -- GitLab