Index: cc/trees/layer_tree_impl.cc |
diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc |
index 89035df5acb5fefdcaf9ac8ef63e2b78e05c1aca..6bbbd270a8cd6f27c6f11fca29e80f2f636e3f2d 100644 |
--- a/cc/trees/layer_tree_impl.cc |
+++ b/cc/trees/layer_tree_impl.cc |
@@ -82,6 +82,7 @@ LayerTreeImpl::LayerTreeImpl( |
needs_full_tree_sync_(true), |
next_activation_forces_redraw_(false), |
has_ever_been_drawn_(false), |
+ handle_visibility_changed_(false), |
have_scroll_event_handlers_(false), |
event_listener_properties_(), |
top_controls_shrink_blink_size_(false), |
@@ -1971,9 +1972,19 @@ LayerImpl* LayerTreeImpl::FindLayerThatIsHitByPointInTouchHandlerRegion( |
} |
void LayerTreeImpl::RegisterSelection(const LayerSelection& selection) { |
+ if (selection_ == selection) |
+ return; |
+ |
+ handle_visibility_changed_ = true; |
selection_ = selection; |
} |
+bool LayerTreeImpl::GetAndResetHandleVisibilityChanged() { |
+ bool curr_handle_visibility_changed = handle_visibility_changed_; |
+ handle_visibility_changed_ = false; |
+ return curr_handle_visibility_changed; |
+} |
+ |
static gfx::SelectionBound ComputeViewportSelectionBound( |
const LayerSelectionBound& layer_bound, |
LayerImpl* layer, |