Index: ui/base/gestures/gesture_types.h |
diff --git a/ui/base/gestures/gesture_types.h b/ui/base/gestures/gesture_types.h |
index 569e6b4ee20db7716743d508b2c2962dd4f1cf7c..584ea171338fe17a32f5e11947ad3555198ffac2 100644 |
--- a/ui/base/gestures/gesture_types.h |
+++ b/ui/base/gestures/gesture_types.h |
@@ -17,6 +17,9 @@ class TouchEvent; |
struct UI_EXPORT GestureEventDetails { |
public: |
GestureEventDetails(EventType type, float delta_x, float delta_y); |
+ GestureEventDetails(EventType type, |
+ float delta_x, float delta_y, |
+ float delta_x_ordinal, float delta_y_ordinal); |
EventType type() const { return type_; } |
@@ -26,7 +29,8 @@ struct UI_EXPORT GestureEventDetails { |
const gfx::Rect& bounding_box() const { return bounding_box_; } |
void set_bounding_box(const gfx::Rect& box) { bounding_box_ = box; } |
- void SetScrollVelocity(float velocity_x, float velocity_y); |
+ void SetScrollVelocity(float velocity_x, float velocity_y, |
+ float velocity_x_ordinal, float velocity_y_ordinal); |
float scroll_x() const { |
CHECK_EQ(ui::ET_GESTURE_SCROLL_UPDATE, type_); |
@@ -52,6 +56,33 @@ struct UI_EXPORT GestureEventDetails { |
data.scroll_update.velocity_y; |
} |
+ // *_ordinal values are unmodified by rail based clamping. |
+ float scroll_x_ordinal() const { |
+ CHECK_EQ(ui::ET_GESTURE_SCROLL_UPDATE, type_); |
+ return data.scroll_update.x_ordinal; |
+ } |
+ |
+ float scroll_y_ordinal() const { |
+ CHECK_EQ(ui::ET_GESTURE_SCROLL_UPDATE, type_); |
+ return data.scroll_update.y_ordinal; |
+ } |
+ |
+ float velocity_x_ordinal() const { |
+ CHECK(type_ == ui::ET_GESTURE_SCROLL_UPDATE || |
+ type_ == ui::ET_SCROLL_FLING_START); |
+ return type_ == ui::ET_SCROLL_FLING_START ? |
+ data.fling_velocity.x_ordinal : |
+ data.scroll_update.velocity_x_ordinal; |
+ } |
+ |
+ float velocity_y_ordinal() const { |
+ CHECK(type_ == ui::ET_GESTURE_SCROLL_UPDATE || |
+ type_ == ui::ET_SCROLL_FLING_START); |
+ return type_ == ui::ET_SCROLL_FLING_START ? |
+ data.fling_velocity.y_ordinal : |
+ data.scroll_update.velocity_y_ordinal; |
+ } |
+ |
int touch_id() const { |
CHECK_EQ(ui::ET_GESTURE_LONG_PRESS, type_); |
return data.touch_id; |
@@ -105,6 +136,10 @@ struct UI_EXPORT GestureEventDetails { |
float y; |
float velocity_x; |
float velocity_y; |
+ float x_ordinal; |
+ float y_ordinal; |
+ float velocity_x_ordinal; |
+ float velocity_y_ordinal; |
} scroll_update; |
float scale; // PINCH scale. |
@@ -112,6 +147,8 @@ struct UI_EXPORT GestureEventDetails { |
struct { // FLING velocity. |
float x; |
float y; |
+ float x_ordinal; |
+ float y_ordinal; |
} fling_velocity; |
int touch_id; // LONG_PRESS touch-id. |