Index: cc/layers/layer.cc |
diff --git a/cc/layers/layer.cc b/cc/layers/layer.cc |
index 9fa27317b5bd4d3b6f48c4f15c456865d2c87ffd..ea3838ea23260d28abd6eff32f61f0eab10ff112 100644 |
--- a/cc/layers/layer.cc |
+++ b/cc/layers/layer.cc |
@@ -69,7 +69,6 @@ Layer::Layer(const LayerSettings& settings) |
mutable_properties_(kMutablePropertyNone), |
should_flatten_transform_from_property_tree_(false), |
should_scroll_on_main_thread_(false), |
- have_wheel_event_handlers_(false), |
have_scroll_event_handlers_(false), |
user_scrollable_horizontal_(true), |
user_scrollable_vertical_(true), |
@@ -87,6 +86,8 @@ Layer::Layer(const LayerSettings& settings) |
transform_is_invertible_(true), |
has_render_surface_(false), |
scroll_blocks_on_(SCROLL_BLOCKS_ON_NONE), |
+ touch_event_properties_(EventListenerProperties::NONE), |
+ wheel_event_properties_(EventListenerProperties::NONE), |
background_color_(0), |
opacity_(1.f), |
blend_mode_(SkXfermode::kSrcOver_Mode), |
@@ -956,12 +957,23 @@ void Layer::SetShouldScrollOnMainThread(bool should_scroll_on_main_thread) { |
SetNeedsCommit(); |
} |
-void Layer::SetHaveWheelEventHandlers(bool have_wheel_event_handlers) { |
+void Layer::SetTouchEventProperties( |
+ EventListenerProperties touch_event_properties) { |
DCHECK(IsPropertyChangeAllowed()); |
- if (have_wheel_event_handlers_ == have_wheel_event_handlers) |
+ if (touch_event_properties_ == touch_event_properties) |
return; |
- have_wheel_event_handlers_ = have_wheel_event_handlers; |
+ touch_event_properties_ = touch_event_properties; |
+ SetNeedsCommit(); |
+} |
+ |
+void Layer::SetWheelEventProperties( |
+ EventListenerProperties wheel_event_properties) { |
+ DCHECK(IsPropertyChangeAllowed()); |
+ if (wheel_event_properties_ == wheel_event_properties) |
+ return; |
+ |
+ wheel_event_properties_ = wheel_event_properties; |
SetNeedsCommit(); |
} |
@@ -1197,7 +1209,8 @@ void Layer::PushPropertiesTo(LayerImpl* layer) { |
layer->SetBackgroundFilters(background_filters()); |
layer->SetMasksToBounds(masks_to_bounds_); |
layer->SetShouldScrollOnMainThread(should_scroll_on_main_thread_); |
- layer->SetHaveWheelEventHandlers(have_wheel_event_handlers_); |
+ layer->SetTouchEventProperties(touch_event_properties_); |
+ layer->SetWheelEventProperties(wheel_event_properties_); |
layer->SetHaveScrollEventHandlers(have_scroll_event_handlers_); |
layer->SetNonFastScrollableRegion(non_fast_scrollable_region_); |
layer->SetTouchEventHandlerRegion(touch_event_handler_region_); |
@@ -1466,7 +1479,10 @@ void Layer::LayerSpecificPropertiesToProto(proto::LayerProperties* proto) { |
base->set_masks_to_bounds(masks_to_bounds_); |
base->set_should_scroll_on_main_thread(should_scroll_on_main_thread_); |
- base->set_have_wheel_event_handlers(have_wheel_event_handlers_); |
+ base->set_touch_event_properties( |
+ static_cast<int32_t>(touch_event_properties_)); |
+ base->set_wheel_event_properties( |
+ static_cast<int32_t>(wheel_event_properties_)); |
base->set_have_scroll_event_handlers(have_scroll_event_handlers_); |
RegionToProto(non_fast_scrollable_region_, |
base->mutable_non_fast_scrollable_region()); |
@@ -1552,7 +1568,10 @@ void Layer::FromLayerSpecificPropertiesProto( |
has_render_surface_ = base.has_render_surface(); |
masks_to_bounds_ = base.masks_to_bounds(); |
should_scroll_on_main_thread_ = base.should_scroll_on_main_thread(); |
- have_wheel_event_handlers_ = base.have_wheel_event_handlers(); |
+ touch_event_properties_ = |
+ (EventListenerProperties)base.touch_event_properties(); |
+ wheel_event_properties_ = |
+ (EventListenerProperties)base.wheel_event_properties(); |
have_scroll_event_handlers_ = base.have_scroll_event_handlers(); |
non_fast_scrollable_region_ = |
RegionFromProto(base.non_fast_scrollable_region()); |