| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/events/gesture_detection/gesture_config_helper.h" | 5 #include "ui/events/gesture_detection/gesture_config_helper.h" |
| 6 | 6 |
| 7 #include "ui/gfx/android/view_configuration.h" | 7 #include "ui/gfx/android/view_configuration.h" |
| 8 #include "ui/gfx/screen.h" | 8 #include "ui/gfx/screen.h" |
| 9 | 9 |
| 10 using gfx::ViewConfiguration; | 10 using gfx::ViewConfiguration; |
| 11 | 11 |
| 12 namespace ui { | 12 namespace ui { |
| 13 namespace { | 13 namespace { |
| 14 // TODO(jdduke): Adopt GestureConfiguration on Android, crbug/339203. | 14 // TODO(jdduke): Adopt GestureConfiguration on Android, crbug/339203. |
| 15 | 15 |
| 16 // This was the minimum tap/press size used on Android before the new gesture | 16 // This was the minimum tap/press size used on Android before the new gesture |
| 17 // detection pipeline. | 17 // detection pipeline. |
| 18 const float kMinGestureBoundsLengthDips = 24.f; | 18 const float kMinGestureBoundsLengthDips = 24.f; |
| 19 | 19 |
| 20 // This value is somewhat arbitrary, but provides a reasonable maximum |
| 21 // approximating a large thumb depression. |
| 22 const float kMaxGestureBoundsLengthDips = kMinGestureBoundsLengthDips * 4.f; |
| 23 |
| 20 GestureDetector::Config DefaultGestureDetectorConfig( | 24 GestureDetector::Config DefaultGestureDetectorConfig( |
| 21 const gfx::Display& display) { | 25 const gfx::Display& display) { |
| 22 GestureDetector::Config config; | 26 GestureDetector::Config config; |
| 23 | 27 |
| 24 config.longpress_timeout = base::TimeDelta::FromMilliseconds( | 28 config.longpress_timeout = base::TimeDelta::FromMilliseconds( |
| 25 ViewConfiguration::GetLongPressTimeoutInMs()); | 29 ViewConfiguration::GetLongPressTimeoutInMs()); |
| 26 config.showpress_timeout = | 30 config.showpress_timeout = |
| 27 base::TimeDelta::FromMilliseconds(ViewConfiguration::GetTapTimeoutInMs()); | 31 base::TimeDelta::FromMilliseconds(ViewConfiguration::GetTapTimeoutInMs()); |
| 28 config.double_tap_timeout = base::TimeDelta::FromMilliseconds( | 32 config.double_tap_timeout = base::TimeDelta::FromMilliseconds( |
| 29 ViewConfiguration::GetDoubleTapTimeoutInMs()); | 33 ViewConfiguration::GetDoubleTapTimeoutInMs()); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 44 ScaleGestureDetector::Config DefaultScaleGestureDetectorConfig( | 48 ScaleGestureDetector::Config DefaultScaleGestureDetectorConfig( |
| 45 const gfx::Display& display) { | 49 const gfx::Display& display) { |
| 46 ScaleGestureDetector::Config config; | 50 ScaleGestureDetector::Config config; |
| 47 | 51 |
| 48 config.gesture_detector_config = DefaultGestureDetectorConfig(display); | 52 config.gesture_detector_config = DefaultGestureDetectorConfig(display); |
| 49 config.quick_scale_enabled = true; | 53 config.quick_scale_enabled = true; |
| 50 | 54 |
| 51 const float px_to_dp = 1.f / display.device_scale_factor(); | 55 const float px_to_dp = 1.f / display.device_scale_factor(); |
| 52 config.min_scaling_touch_major = | 56 config.min_scaling_touch_major = |
| 53 ViewConfiguration::GetMinScalingTouchMajorInPixels() * px_to_dp; | 57 ViewConfiguration::GetMinScalingTouchMajorInPixels() * px_to_dp; |
| 58 config.use_touch_major_in_span = |
| 59 ViewConfiguration::ShouldUseTouchMajorInScalingSpan(); |
| 54 config.min_scaling_span = | 60 config.min_scaling_span = |
| 55 ViewConfiguration::GetMinScalingSpanInPixels() * px_to_dp; | 61 ViewConfiguration::GetMinScalingSpanInPixels() * px_to_dp; |
| 62 // As the |min_scaling_span| platform constant assumes that touch major values |
| 63 // are used when computing the span, subtract off a reasonable touch major |
| 64 // value for the case where the touch major values are not used. |
| 65 if (!config.use_touch_major_in_span) { |
| 66 config.min_scaling_span = std::max( |
| 67 0.f, config.min_scaling_span - 2.f * config.min_scaling_touch_major); |
| 68 } |
| 56 | 69 |
| 57 return config; | 70 return config; |
| 58 } | 71 } |
| 59 | 72 |
| 60 } // namespace | 73 } // namespace |
| 61 | 74 |
| 62 GestureProvider::Config DefaultGestureProviderConfig() { | 75 GestureProvider::Config DefaultGestureProviderConfig() { |
| 63 GestureProvider::Config config; | 76 GestureProvider::Config config; |
| 64 config.display = gfx::Screen::GetNativeScreen()->GetPrimaryDisplay(); | 77 config.display = gfx::Screen::GetNativeScreen()->GetPrimaryDisplay(); |
| 65 config.gesture_detector_config = DefaultGestureDetectorConfig(config.display); | 78 config.gesture_detector_config = DefaultGestureDetectorConfig(config.display); |
| 66 config.scale_gesture_detector_config = | 79 config.scale_gesture_detector_config = |
| 67 DefaultScaleGestureDetectorConfig(config.display); | 80 DefaultScaleGestureDetectorConfig(config.display); |
| 68 config.gesture_begin_end_types_enabled = false; | 81 config.gesture_begin_end_types_enabled = false; |
| 69 config.min_gesture_bounds_length = kMinGestureBoundsLengthDips; | 82 config.min_gesture_bounds_length = kMinGestureBoundsLengthDips; |
| 83 config.max_gesture_bounds_length = kMaxGestureBoundsLengthDips; |
| 70 return config; | 84 return config; |
| 71 } | 85 } |
| 72 | 86 |
| 73 } // namespace ui | 87 } // namespace ui |
| OLD | NEW |