Index: cc/layers/layer_impl.cc |
diff --git a/cc/layers/layer_impl.cc b/cc/layers/layer_impl.cc |
index a99ede899fca62e89af1d22c636500cca24a081a..066d26c7b4ecf74d4a81b8218aaa78b1fee3abf8 100644 |
--- a/cc/layers/layer_impl.cc |
+++ b/cc/layers/layer_impl.cc |
@@ -621,9 +621,6 @@ gfx::Vector2dF LayerImpl::FixedContainerSizeDelta() const { |
if (!scroll_clip_layer_) |
return gfx::Vector2dF(); |
- float scale_delta = layer_tree_impl()->page_scale_delta(); |
- float scale = layer_tree_impl()->page_scale_factor(); |
- |
gfx::Vector2dF delta_from_scroll = scroll_clip_layer_->bounds_delta(); |
// In virtual-viewport mode, we don't need to compensate for pinch zoom or |
@@ -632,6 +629,10 @@ gfx::Vector2dF LayerImpl::FixedContainerSizeDelta() const { |
if (layer_tree_impl()->settings().use_pinch_virtual_viewport) |
return delta_from_scroll; |
+ float scale_delta = layer_tree_impl()->page_scale_delta(); |
+ float scale = layer_tree_impl()->current_page_scale_factor() / |
+ layer_tree_impl()->page_scale_delta(); |
+ |
delta_from_scroll.Scale(1.f / scale); |
// The delta-from-pinch component requires some explanation: A viewport of |
@@ -1213,7 +1214,7 @@ gfx::ScrollOffset LayerImpl::MaxScrollOffset() const { |
const gfx::Transform& layer_transform = current_layer->transform(); |
if (current_layer == page_scale_layer) { |
DCHECK(layer_transform.IsIdentity()); |
- current_layer_scale = layer_tree_impl()->total_page_scale_factor(); |
+ current_layer_scale = layer_tree_impl()->current_page_scale_factor(); |
} else { |
// TODO(wjmaclean) Should we allow for translation too? |
DCHECK(layer_transform.IsScale2d()); |
@@ -1230,7 +1231,7 @@ gfx::ScrollOffset LayerImpl::MaxScrollOffset() const { |
// page scale layer may coincide with the clip layer, and so this is |
// necessary. |
if (page_scale_layer == scroll_clip_layer_) |
- scale_factor *= layer_tree_impl()->total_page_scale_factor(); |
+ scale_factor *= layer_tree_impl()->current_page_scale_factor(); |
scaled_scroll_bounds.SetSize(scale_factor * scaled_scroll_bounds.width(), |
scale_factor * scaled_scroll_bounds.height()); |
@@ -1289,7 +1290,7 @@ void LayerImpl::SetScrollbarPosition(ScrollbarLayerImplBase* scrollbar_layer, |
const gfx::Transform& layer_transform = current_layer->transform(); |
if (current_layer == page_scale_layer) { |
DCHECK(layer_transform.IsIdentity()); |
- float scale_factor = layer_tree_impl()->total_page_scale_factor(); |
+ float scale_factor = layer_tree_impl()->current_page_scale_factor(); |
current_offset.Scale(scale_factor); |
scroll_rect.Scale(scale_factor); |
} else { |
@@ -1307,8 +1308,8 @@ void LayerImpl::SetScrollbarPosition(ScrollbarLayerImplBase* scrollbar_layer, |
// page scale layer may coincide with the clip layer, and so this is |
// necessary. |
if (page_scale_layer == scrollbar_clip_layer) { |
- scroll_rect.Scale(layer_tree_impl()->total_page_scale_factor()); |
- current_offset.Scale(layer_tree_impl()->total_page_scale_factor()); |
+ scroll_rect.Scale(layer_tree_impl()->current_page_scale_factor()); |
+ current_offset.Scale(layer_tree_impl()->current_page_scale_factor()); |
} |
bool scrollbar_needs_animation = false; |
@@ -1343,7 +1344,7 @@ void LayerImpl::SetScrollbarPosition(ScrollbarLayerImplBase* scrollbar_layer, |
// Non-overlay scrollbars also shouldn't trigger animations. |
bool is_animatable_scrollbar = |
scrollbar_layer->is_overlay_scrollbar() && |
- ((layer_tree_impl()->total_page_scale_factor() > |
+ ((layer_tree_impl()->current_page_scale_factor() > |
layer_tree_impl()->min_page_scale_factor()) || |
!layer_tree_impl()->settings().use_pinch_zoom_scrollbars); |
if (is_animatable_scrollbar) |