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

Side by Side Diff: content/browser/renderer_host/input/mouse_wheel_rails_filter_mac.cc

Issue 1019153002: Mac: Add rails for scrolling. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Incorporate review feedback Created 5 years, 9 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "content/browser/renderer_host/input/mouse_wheel_rails_filter_mac.h"
6
7 using blink::WebInputEvent;
8 using blink::WebMouseWheelEvent;
9
10 namespace content {
11
12 MouseWheelRailsFilterMac::MouseWheelRailsFilterMac() {
13 }
14
15 MouseWheelRailsFilterMac::~MouseWheelRailsFilterMac() {
16 }
17
18 WebInputEvent::RailsMode MouseWheelRailsFilterMac::UpdateRailsMode(
19 const WebMouseWheelEvent& event) {
20 // A somewhat-arbitrary decay constant for hysteresis.
21 const float kDecayConstant = 0.8f;
22
23 if (event.phase == WebMouseWheelEvent::PhaseBegan) {
24 decayed_delta_ = gfx::Vector2dF();
25 }
26 if (event.deltaX == 0 && event.deltaY == 0)
27 return WebInputEvent::RailsModeFree;
28
29 decayed_delta_.Scale(kDecayConstant);
30 decayed_delta_ +=
31 gfx::Vector2dF(std::abs(event.deltaX), std::abs(event.deltaY));
32
33 if (decayed_delta_.y() >= decayed_delta_.x())
34 return WebInputEvent::RailsModeVertical;
35 return WebInputEvent::RailsModeHorizontal;
36 }
37
38 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698