| Index: cc/layers/layer_impl.cc
|
| diff --git a/cc/layers/layer_impl.cc b/cc/layers/layer_impl.cc
|
| index b34948c5d6c633d5dd918996bd3f8bb767331d0f..0b54efafb37a76a0548c88ce7bf5fc9f0f0aadf4 100644
|
| --- a/cc/layers/layer_impl.cc
|
| +++ b/cc/layers/layer_impl.cc
|
| @@ -1137,7 +1137,20 @@ void LayerImpl::PushScrollOffsetFromMainThreadAndClobberActiveValue(
|
|
|
| gfx::ScrollOffset LayerImpl::PullDeltaForMainThread() {
|
| RefreshFromScrollDelegate();
|
| - return scroll_offset_->PullDeltaForMainThread();
|
| +
|
| + // TODO(miletus): Remove all this temporary flooring machinery when
|
| + // Blink fully supports fractional scrolls.
|
| + gfx::ScrollOffset current_offset = CurrentScrollOffset();
|
| + gfx::Vector2dF current_delta = ScrollDelta();
|
| + gfx::Vector2dF floored_delta(floor(current_delta.x()),
|
| + floor(current_delta.y()));
|
| + gfx::Vector2dF diff_delta = floored_delta - current_delta;
|
| + gfx::ScrollOffset tmp_offset = ScrollOffsetWithDelta(current_offset,
|
| + diff_delta);
|
| + scroll_offset_->SetCurrent(tmp_offset);
|
| + gfx::ScrollOffset delta = scroll_offset_->PullDeltaForMainThread();
|
| + scroll_offset_->SetCurrent(current_offset);
|
| + return delta;
|
| }
|
|
|
| void LayerImpl::RefreshFromScrollDelegate() {
|
|
|