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

Unified Diff: ui/events/gesture_detection/gesture_configuration.cc

Issue 613373004: Adopt ui::GestureConfiguration on Android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years, 2 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: ui/events/gesture_detection/gesture_configuration.cc
diff --git a/ui/events/gesture_detection/gesture_configuration.cc b/ui/events/gesture_detection/gesture_configuration.cc
new file mode 100644
index 0000000000000000000000000000000000000000..bfd5e7e64835cd57f17ab08d0cc2887f333a4933
--- /dev/null
+++ b/ui/events/gesture_detection/gesture_configuration.cc
@@ -0,0 +1,101 @@
+// Copyright (c) 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ui/events/gesture_detection/gesture_configuration.h"
+
+namespace ui {
+
+GestureConfiguration::GestureConfiguration()
+ : default_radius_(25),
+ double_tap_timeout_in_ms_(400),
+ fling_max_cancel_to_down_time_in_ms_(400),
+ fling_max_tap_gap_time_in_ms_(200),
+ gesture_begin_end_types_enabled_(false),
+ long_press_time_in_ms_(1000),
+ max_distance_between_taps_for_double_tap_(20),
+ max_distance_for_two_finger_tap_in_pixels_(300),
+ max_fling_velocity_(17000.0f),
+ max_gesture_bounds_length_(0),
+ max_separation_for_gesture_touches_in_pixels_(150),
+ max_swipe_deviation_angle_(20),
+ max_time_between_double_click_in_ms_(700),
+ max_touch_down_duration_for_click_in_ms_(800),
+ max_touch_move_in_pixels_for_click_(15),
+ min_distance_for_pinch_scroll_in_pixels_(20),
+ min_fling_velocity_(30.0f),
+ min_gesture_bounds_length_(0),
+ min_pinch_update_distance_in_pixels_(0),
+ min_pinch_update_span_delta_(0),
+ // If this is too small, we currently can get single finger pinch zoom.
+ // See
tdresser 2014/10/23 14:26:22 Formatting.
lanwei 2014/10/23 19:54:19 Done.
+ // crbug.com/357237 for details.
+ min_scaling_span_in_pixels_(125),
+ min_scaling_touch_major_(0),
+ min_swipe_velocity_(20),
+// TODO(jdduke): Disable and remove entirely when issues with intermittent
+// scroll end detection on the Pixel are resolved, crbug.com/353702.
+#if defined(OS_CHROMEOS)
+ scroll_debounce_interval_in_ms_(30),
+#else
+ scroll_debounce_interval_in_ms_(0),
+#endif
+ semi_long_press_time_in_ms_(400),
+ show_press_delay_in_ms_(150),
+ span_slop_(0),
+ swipe_enabled_(false),
+ tab_scrub_activation_delay_in_ms_(200),
+ two_finger_tap_enabled_(false) {
+}
+
+GestureConfiguration::~GestureConfiguration() {
+}
+
+GestureProvider::Config GestureConfiguration::DefaultGestureProviderConfig() {
+ GestureProvider::Config config;
+ gfx::Screen* screen = gfx::Screen::GetScreenByType(gfx::SCREEN_TYPE_NATIVE);
+ // |screen| is sometimes NULL during tests.
+ if (screen)
+ config.display = screen->GetPrimaryDisplay();
+ config.gesture_detector_config = DefaultGestureDetectorConfig();
+ config.scale_gesture_detector_config = DefaultScaleGestureDetectorConfig();
+ config.gesture_begin_end_types_enabled = gesture_begin_end_types_enabled();
+ config.min_gesture_bounds_length = min_gesture_bounds_length();
+ config.max_gesture_bounds_length = max_gesture_bounds_length();
+ return config;
+}
+
+GestureDetector::Config GestureConfiguration::DefaultGestureDetectorConfig() {
+ GestureDetector::Config config;
+ config.longpress_timeout =
+ base::TimeDelta::FromMilliseconds(long_press_time_in_ms());
+ config.showpress_timeout =
+ base::TimeDelta::FromMilliseconds(show_press_delay_in_ms());
+ config.double_tap_timeout =
+ base::TimeDelta::FromMilliseconds(double_tap_timeout_in_ms());
+ config.touch_slop = max_touch_move_in_pixels_for_click();
+ config.double_tap_slop = max_distance_between_taps_for_double_tap();
+ config.minimum_fling_velocity = min_fling_velocity();
+ config.maximum_fling_velocity = max_fling_velocity();
+ config.swipe_enabled = swipe_enabled();
+ config.minimum_swipe_velocity = min_swipe_velocity();
+ config.maximum_swipe_deviation_angle = max_swipe_deviation_angle();
+ config.two_finger_tap_enabled = two_finger_tap_enabled();
+ config.two_finger_tap_max_separation =
+ max_distance_for_two_finger_tap_in_pixels();
+ config.two_finger_tap_timeout = base::TimeDelta::FromMilliseconds(
+ max_touch_down_duration_for_click_in_ms());
+ return config;
+}
+
+ScaleGestureDetector::Config
+GestureConfiguration::DefaultScaleGestureDetectorConfig() {
+ ScaleGestureDetector::Config config;
+ config.span_slop = span_slop();
+ config.min_scaling_touch_major = min_scaling_touch_major();
+ config.min_scaling_span = min_scaling_span_in_pixels();
+ config.min_pinch_update_span_delta = min_pinch_update_span_delta();
+ return config;
+}
+
+} // namespace ui

Powered by Google App Engine
This is Rietveld 408576698