Index: cc/trees/layer_tree_impl.cc |
diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc |
index faff70eb1bf074bc58ee764404d643c686f3c045..eada04567d6c76dea8d42b756ace31b4505e3da9 100644 |
--- a/cc/trees/layer_tree_impl.cc |
+++ b/cc/trees/layer_tree_impl.cc |
@@ -27,6 +27,9 @@ LayerTreeImpl::LayerTreeImpl(LayerTreeHostImpl* layer_tree_host_impl) |
root_layer_scroll_offset_delegate_(NULL), |
background_color_(0), |
has_transparent_background_(false), |
+ page_scale_layer_(NULL), |
+ inner_viewport_scroll_layer_(NULL), |
+ outer_viewport_scroll_layer_(NULL), |
page_scale_factor_(1), |
page_scale_delta_(1), |
sent_page_scale_delta_(1), |
@@ -115,6 +118,10 @@ void LayerTreeImpl::PushPropertiesTo(LayerTreeImpl* target_tree) { |
target_tree->page_scale_delta() / target_tree->sent_page_scale_delta()); |
target_tree->set_sent_page_scale_delta(1); |
+ if (settings().use_pinch_virtual_viewport) |
enne (OOO)
2013/09/11 20:13:03
style nit: {}
wjmaclean
2013/09/12 18:16:47
Done.
|
+ target_tree->SetPinchViewportLayerIds(page_scale_layer_->id(), |
+ inner_viewport_scroll_layer_->id(), |
+ outer_viewport_scroll_layer_->id()); |
// This should match the property synchronization in |
// LayerTreeHost::finishCommitOnImplThread(). |
target_tree->set_source_frame_number(source_frame_number()); |
@@ -257,6 +264,17 @@ void LayerTreeImpl::ApplyScrollDeltasSinceBeginFrame() { |
root_layer(), base::Bind(&ApplyScrollDeltasSinceBeginFrameTo)); |
} |
+void LayerTreeImpl::SetPinchViewportLayerIds( |
enne (OOO)
2013/09/11 20:13:03
Should this DCHECK that these exist? It seems like
wjmaclean
2013/09/12 18:16:47
Done.
We need to check the validity of the layer
|
+ int page_scale_layer_id, |
+ int inner_viewport_scroll_layer_id, |
+ int outer_viewport_scroll_layer_id) { |
+ page_scale_layer_ = FindPendingTreeLayerById(page_scale_layer_id); |
+ inner_viewport_scroll_layer_ = |
+ FindPendingTreeLayerById(inner_viewport_scroll_layer_id); |
+ outer_viewport_scroll_layer_ = |
+ FindPendingTreeLayerById(outer_viewport_scroll_layer_id); |
+} |
+ |
// TODO(wjmaclean) This needs to go away, and be replaced with a single core |
// of login that works for both scrollbar layer types. This is already planned |
// as part of the larger pinch-zoom re-factoring viewport. |
@@ -316,13 +334,15 @@ void LayerTreeImpl::UpdateDrawProperties() { |
IsActiveTree(), |
"SourceFrameNumber", |
source_frame_number_); |
+ LayerImpl* page_scale_layer = |
+ page_scale_layer_ ? page_scale_layer_ : RootContainerLayer(); |
LayerTreeHostCommon::CalcDrawPropsImplInputs inputs( |
root_layer(), |
DrawViewportSize(), |
layer_tree_host_impl_->DrawTransform(), |
device_scale_factor(), |
total_page_scale_factor(), |
- root_scroll_layer_ ? root_scroll_layer_->parent() : NULL, |
+ page_scale_layer, |
MaxTextureSize(), |
settings().can_use_lcd_text, |
settings().layer_transforms_should_scale_layer_contents, |