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

Unified Diff: cc/layers/layer.cc

Issue 862133002: Update from https://crrev.com/312398 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 11 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
« no previous file with comments | « cc/layers/layer.h ('k') | cc/layers/layer_impl.h » ('j') | shell/BUILD.gn » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/layers/layer.cc
diff --git a/cc/layers/layer.cc b/cc/layers/layer.cc
index fb72c73b9c483b0b289a429e75e4095e3b71797d..3817115f709780042a40cecba6ec00312185b0b2 100644
--- a/cc/layers/layer.cc
+++ b/cc/layers/layer.cc
@@ -71,6 +71,7 @@ Layer::Layer()
force_render_surface_(false),
transform_is_invertible_(true),
has_render_surface_(false),
+ clear_impl_scroll_delta_(false),
background_color_(0),
opacity_(1.f),
blend_mode_(SkXfermode::kSrcOver_Mode),
@@ -970,12 +971,18 @@ void Layer::PushPropertiesTo(LayerImpl* layer) {
// in LayerImpl::ApplyScrollDeltasSinceBeginMainFrame in a separate tree walk.
if (layer->layer_tree_impl()->settings().impl_side_painting) {
layer->SetScrollOffset(scroll_offset_);
+ if (clear_impl_scroll_delta_)
+ layer->ClearScrollDeltaAtActivation();
} else {
- layer->SetScrollOffsetAndDelta(
- scroll_offset_,
- layer->ScrollDelta() - layer->sent_scroll_delta());
+ if (clear_impl_scroll_delta_) {
+ layer->SetScrollOffsetAndDelta(scroll_offset_, gfx::Vector2dF());
+ } else {
+ layer->SetScrollOffsetAndDelta(
+ scroll_offset_, layer->ScrollDelta() - layer->sent_scroll_delta());
+ }
layer->SetSentScrollDelta(gfx::Vector2dF());
}
+ clear_impl_scroll_delta_ = false;
// Wrap the copy_requests_ in a PostTask to the main thread.
ScopedPtrVector<CopyOutputRequest> main_thread_copy_requests;
@@ -1145,6 +1152,10 @@ void Layer::OnAnimationWaitingForDeletion() {
SetNeedsPushProperties();
}
+void Layer::OnScrollOffsetAnimationRemoved() {
+ clear_impl_scroll_delta_ = true;
+}
+
bool Layer::IsActive() const {
return true;
}
« no previous file with comments | « cc/layers/layer.h ('k') | cc/layers/layer_impl.h » ('j') | shell/BUILD.gn » ('J')

Powered by Google App Engine
This is Rietveld 408576698