| Index: cc/input/scroll_state_data.h
|
| diff --git a/cc/input/scroll_state_data.h b/cc/input/scroll_state_data.h
|
| index 302970bd08d7f898390e98aadfd920bfdc9b51b5..d0f129733c1eb434bf2713fbd617b059a6e711d5 100644
|
| --- a/cc/input/scroll_state_data.h
|
| +++ b/cc/input/scroll_state_data.h
|
| @@ -5,6 +5,8 @@
|
| #ifndef CC_INPUT_SCROLL_STATE_DATA_H_
|
| #define CC_INPUT_SCROLL_STATE_DATA_H_
|
|
|
| +#include <stdint.h>
|
| +
|
| #include <list>
|
|
|
| #include "cc/base/cc_export.h"
|
| @@ -13,7 +15,7 @@ namespace cc {
|
|
|
| class LayerImpl;
|
|
|
| -struct CC_EXPORT ScrollStateData {
|
| +class CC_EXPORT ScrollStateData {
|
| public:
|
| ScrollStateData();
|
| ScrollStateData(double delta_x,
|
| @@ -26,8 +28,10 @@ struct CC_EXPORT ScrollStateData {
|
| bool is_in_inertial_phase,
|
| bool is_ending,
|
| bool should_propagate,
|
| - bool delta_consumed_for_scroll_sequence,
|
| - bool is_direct_manipulation);
|
| + bool from_user_input,
|
| + bool is_direct_manipulation,
|
| + double delta_granularity,
|
| + bool delta_consumed_for_scroll_sequence);
|
| // Scroll delta in viewport coordinates (DIP).
|
| double delta_x;
|
| double delta_y;
|
| @@ -43,15 +47,17 @@ struct CC_EXPORT ScrollStateData {
|
| bool is_ending;
|
|
|
| bool should_propagate;
|
| + bool from_user_input;
|
|
|
| - // The last layer to respond to a scroll, or null if none exists.
|
| - LayerImpl* current_native_scrolling_layer;
|
| // Whether the scroll sequence has had any delta consumed, in the
|
| // current frame, or any child frames.
|
| bool delta_consumed_for_scroll_sequence;
|
| // True if the user interacts directly with the display, e.g., via
|
| // touch.
|
| bool is_direct_manipulation;
|
| + // Minimum amount this input device can scroll.
|
| + double delta_granularity;
|
| +
|
| // TODO(tdresser): ScrollState shouldn't need to keep track of whether or not
|
| // this ScrollState object has caused a scroll. Ideally, any native scroller
|
| // consuming delta has caused a scroll. Currently, there are some cases where
|
| @@ -60,6 +66,23 @@ struct CC_EXPORT ScrollStateData {
|
| // of |caused_scroll_*_|. See crbug.com/510045 for details.
|
| bool caused_scroll_x;
|
| bool caused_scroll_y;
|
| +
|
| + LayerImpl* current_native_scrolling_layer() const;
|
| + void set_current_native_scrolling_layer(
|
| + LayerImpl* current_native_scrolling_layer);
|
| + uint64_t current_native_scrolling_element() const;
|
| + void set_current_native_scrolling_element(uint64_t element_id);
|
| +
|
| + private:
|
| + // Only one of current_native_scrolling_layer_ and
|
| + // current_native_scrolling_element_ may be non-null at a time. Whenever
|
| + // possible, we should store the layer.
|
| +
|
| + // The last layer to respond to a scroll, or null if none exists.
|
| + LayerImpl* current_native_scrolling_layer_;
|
| + // The id of the last native element to respond to a scroll, or 0 if none
|
| + // exists.
|
| + uint64_t current_native_scrolling_element_;
|
| };
|
|
|
| } // namespace cc
|
|
|