Index: cc/layers/layer.cc |
diff --git a/cc/layers/layer.cc b/cc/layers/layer.cc |
index feb23fa8d84f4e800c135e606335a47d103d03ff..f94d23393c93b5624b7776a4d2b216feba605849 100644 |
--- a/cc/layers/layer.cc |
+++ b/cc/layers/layer.cc |
@@ -672,6 +672,24 @@ void Layer::SetScrollOffset(const gfx::ScrollOffset& scroll_offset) { |
SetNeedsCommit(); |
} |
+void Layer::SetScrollOffsetFractionalPart( |
aelias_OOO_until_Jul13
2015/01/28 22:34:16
Let's not mutate scroll_offset_ in this method. W
Yufeng Shen (Slow to review)
2015/01/28 22:49:27
Done.
|
+ const gfx::Vector2dF& scroll_offset_fractional_part) { |
+ gfx::ScrollOffset floored_scroll_offset( |
+ gfx::ScrollOffsetToFlooredVector2d(scroll_offset_)); |
+ gfx::ScrollOffset new_scroll_offset = |
+ ScrollOffsetWithDelta(floored_scroll_offset, |
+ scroll_offset_fractional_part); |
+ if (new_scroll_offset == scroll_offset_) |
+ return; |
+ scroll_offset_ = new_scroll_offset; |
+ SetNeedsCommit(); |
+} |
+ |
+gfx::Vector2dF Layer::MainScrollOffsetFractionalPart() const { |
+ return scroll_offset_.DeltaFrom(gfx::ScrollOffset( |
+ gfx::ScrollOffsetToFlooredVector2d(scroll_offset_))); |
+} |
+ |
void Layer::SetScrollOffsetFromImplSide( |
const gfx::ScrollOffset& scroll_offset) { |
DCHECK(IsPropertyChangeAllowed()); |
@@ -981,6 +999,7 @@ void Layer::PushPropertiesTo(LayerImpl* layer) { |
} |
layer->SetSentScrollDelta(gfx::Vector2dF()); |
} |
+ layer->SetMainScrollOffsetFractionalPart(MainScrollOffsetFractionalPart()); |
// Wrap the copy_requests_ in a PostTask to the main thread. |
ScopedPtrVector<CopyOutputRequest> main_thread_copy_requests; |