diff options
author | mkosiba@chromium.org <mkosiba@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-09 18:08:29 +0000 |
---|---|---|
committer | mkosiba@chromium.org <mkosiba@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-09 18:08:29 +0000 |
commit | 22f200a767dd1804cfc20cc6bda867eea9448ada (patch) | |
tree | ad14127e67ce5660a4e6d8ea8c9b28916606eef7 /cc | |
parent | 342caad900914bdc0025c680a5acbcb52b68216a (diff) | |
download | chromium_src-22f200a767dd1804cfc20cc6bda867eea9448ada.zip chromium_src-22f200a767dd1804cfc20cc6bda867eea9448ada.tar.gz chromium_src-22f200a767dd1804cfc20cc6bda867eea9448ada.tar.bz2 |
Use total page scale in the LayerScrollOffsetDelegate.
In order for the LayerScrollOffsetDelegate to see the most up to
date pageScale we need to use the total page scale rather than
just the value that was last synced with the main thread.
BUG=None
TEST=cc_unittests
R=aelias@chromium.org, joth@chromium.org, yfriedman@chromium.org
Review URL: https://codereview.chromium.org/26274003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227763 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc')
-rw-r--r-- | cc/input/layer_scroll_offset_delegate.h | 2 | ||||
-rw-r--r-- | cc/layers/layer_impl_unittest.cc | 4 | ||||
-rw-r--r-- | cc/trees/layer_tree_host_impl_unittest.cc | 5 | ||||
-rw-r--r-- | cc/trees/layer_tree_impl.cc | 14 |
4 files changed, 18 insertions, 7 deletions
diff --git a/cc/input/layer_scroll_offset_delegate.h b/cc/input/layer_scroll_offset_delegate.h index 805bbfb..54a11c9 100644 --- a/cc/input/layer_scroll_offset_delegate.h +++ b/cc/input/layer_scroll_offset_delegate.h @@ -40,7 +40,7 @@ class LayerScrollOffsetDelegate { // This is called by the compositor to notify the delegate what is the current // page scale factor is. - virtual void SetPageScaleFactor(float page_scale_factor) = 0; + virtual void SetTotalPageScaleFactor(float page_scale_factor) = 0; // This is called by the compositor to notify the delegate what is the layer's // scrollable size is. diff --git a/cc/layers/layer_impl_unittest.cc b/cc/layers/layer_impl_unittest.cc index 3a0b1ce..83cd346 100644 --- a/cc/layers/layer_impl_unittest.cc +++ b/cc/layers/layer_impl_unittest.cc @@ -382,7 +382,7 @@ class ScrollDelegateIgnore : public LayerScrollOffsetDelegate { fixed_offset_ = fixed_offset; } - virtual void SetPageScaleFactor(float page_scale_factor) OVERRIDE {} + virtual void SetTotalPageScaleFactor(float page_scale_factor) OVERRIDE {} virtual void SetScrollableSize(gfx::SizeF scrollable_size) OVERRIDE {} private: @@ -434,7 +434,7 @@ class ScrollDelegateAccept : public LayerScrollOffsetDelegate { return current_offset_; } virtual bool IsExternalFlingActive() const OVERRIDE { return false; } - virtual void SetPageScaleFactor(float page_scale_factor) OVERRIDE {} + virtual void SetTotalPageScaleFactor(float page_scale_factor) OVERRIDE {} virtual void SetScrollableSize(gfx::SizeF scrollable_size) OVERRIDE {} private: diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc index 23a0378..720ae91 100644 --- a/cc/trees/layer_tree_host_impl_unittest.cc +++ b/cc/trees/layer_tree_host_impl_unittest.cc @@ -2451,7 +2451,7 @@ class TestScrollOffsetDelegate : public LayerScrollOffsetDelegate { virtual bool IsExternalFlingActive() const OVERRIDE { return false; } - virtual void SetPageScaleFactor(float page_scale_factor) OVERRIDE { + virtual void SetTotalPageScaleFactor(float page_scale_factor) OVERRIDE { page_scale_factor_ = page_scale_factor; } @@ -2509,6 +2509,9 @@ TEST_F(LayerTreeHostImplTest, RootLayerScrollOffsetDelegation) { // Updating page scale immediately updates the delegate. host_impl_->active_tree()->SetPageScaleFactorAndLimits(2.f, 0.5f, 4.f); EXPECT_EQ(2.f, scroll_delegate.page_scale_factor()); + host_impl_->active_tree()->SetPageScaleDelta(1.5f); + EXPECT_EQ(3.f, scroll_delegate.page_scale_factor()); + host_impl_->active_tree()->SetPageScaleDelta(1.f); host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f, 0.5f, 4.f); EXPECT_EQ(1.f, scroll_delegate.page_scale_factor()); diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc index 1b527cc..aa587b4 100644 --- a/cc/trees/layer_tree_impl.cc +++ b/cc/trees/layer_tree_impl.cc @@ -190,8 +190,10 @@ void LayerTreeImpl::SetPageScaleFactorAndLimits(float page_scale_factor, max_page_scale_factor_ = max_page_scale_factor; page_scale_factor_ = page_scale_factor; - if (root_layer_scroll_offset_delegate_) - root_layer_scroll_offset_delegate_->SetPageScaleFactor(page_scale_factor_); + if (root_layer_scroll_offset_delegate_) { + root_layer_scroll_offset_delegate_->SetTotalPageScaleFactor( + total_page_scale_factor()); + } } void LayerTreeImpl::SetPageScaleDelta(float delta) { @@ -218,6 +220,11 @@ void LayerTreeImpl::SetPageScaleDelta(float delta) { UpdateMaxScrollOffset(); set_needs_update_draw_properties(); + + if (root_layer_scroll_offset_delegate_) { + root_layer_scroll_offset_delegate_->SetTotalPageScaleFactor( + total_page_scale_factor()); + } } gfx::SizeF LayerTreeImpl::ScrollableViewportSize() const { @@ -618,7 +625,8 @@ void LayerTreeImpl::SetRootLayerScrollOffsetDelegate( if (root_layer_scroll_offset_delegate_) { root_layer_scroll_offset_delegate_->SetScrollableSize(ScrollableSize()); - root_layer_scroll_offset_delegate_->SetPageScaleFactor(page_scale_factor_); + root_layer_scroll_offset_delegate_->SetTotalPageScaleFactor( + total_page_scale_factor()); } } |