Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1110)

Unified Diff: cc/trees/layer_tree_impl.cc

Issue 16679011: Add viewport scrollbar class to support overlay scrollbars for pinch zoom virtual viewport. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add scrollbars layers in compositor, plumb layer ids to LayerTreeImpl. Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: cc/trees/layer_tree_impl.cc
diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
index f959d8ec41e4a855031c51d2ab5fa71fcccecec9..7a7c9351f304fb513a6b3be7ce95e85b5538f22a 100644
--- a/cc/trees/layer_tree_impl.cc
+++ b/cc/trees/layer_tree_impl.cc
@@ -111,6 +111,11 @@ 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)
+ 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());
@@ -222,6 +227,17 @@ void LayerTreeImpl::UpdateMaxScrollOffset() {
root_scroll_layer_->SetMaxScrollOffset(gfx::ToFlooredVector2d(max_scroll));
}
+void LayerTreeImpl::SetPinchViewportLayerIds(
+ 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);
+}
+
void LayerTreeImpl::UpdateSolidColorScrollbars() {
DCHECK(settings().solid_color_scrollbars);
@@ -280,13 +296,14 @@ void LayerTreeImpl::UpdateDrawProperties() {
"LayerTreeImpl::UpdateDrawProperties",
"IsActive",
IsActiveTree());
+
LayerTreeHostCommon::CalculateDrawProperties(
root_layer(),
layer_tree_host_impl_->DeviceViewport().size(),
layer_tree_host_impl_->DeviceTransform(),
device_scale_factor(),
total_page_scale_factor(),
- root_scroll_layer_,
+ page_scale_layer_ ? page_scale_layer_ : root_scroll_layer_,
MaxTextureSize(),
settings().can_use_lcd_text,
settings().layer_transforms_should_scale_layer_contents,

Powered by Google App Engine
This is Rietveld 408576698