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

Unified Diff: cc/trees/layer_tree_host.cc

Issue 786123002: Update from https://crrev.com/307330 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years 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/trees/layer_tree_host.h ('k') | cc/trees/layer_tree_host_common.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/layer_tree_host.cc
diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc
index 361fae14285e58f5675126d4a16d9b1338a79e11..22b11967e6f0795b186e0f70e5ae3ea5d317b12a 100644
--- a/cc/trees/layer_tree_host.cc
+++ b/cc/trees/layer_tree_host.cc
@@ -363,6 +363,9 @@ void LayerTreeHost::FinishCommitOnImplThread(LayerTreeHostImpl* host_impl) {
sync_tree->PushPageScaleFromMainThread(
page_scale_factor_, min_page_scale_factor_, max_page_scale_factor_);
+ sync_tree->elastic_overscroll()->PushFromMainThread(elastic_overscroll_);
+ if (sync_tree->IsActiveTree())
+ sync_tree->elastic_overscroll()->PushPendingToActive();
sync_tree->PassSwapPromises(&swap_promise_list_);
@@ -875,6 +878,7 @@ bool LayerTreeHost::UpdateLayers(Layer* root_layer,
LayerTreeHostCommon::CalcDrawPropsMainInputs inputs(
root_layer, device_viewport_size(), gfx::Transform(),
device_scale_factor_, page_scale_factor_, page_scale_layer,
+ elastic_overscroll_, overscroll_elasticity_layer_.get(),
GetRendererCapabilities().max_texture_size, settings_.can_use_lcd_text,
settings_.layers_always_allowed_lcd_text,
can_render_to_separate_surface,
@@ -1126,9 +1130,8 @@ void LayerTreeHost::ApplyScrollAndScale(ScrollAndScaleSet* info) {
}
if (!inner_viewport_scroll_delta.IsZero() ||
- !outer_viewport_scroll_delta.IsZero() ||
- info->page_scale_delta != 1.f ||
- info->top_controls_delta) {
+ !outer_viewport_scroll_delta.IsZero() || info->page_scale_delta != 1.f ||
+ !info->elastic_overscroll_delta.IsZero() || info->top_controls_delta) {
// Preemptively apply the scroll offset and scale delta here before sending
// it to the client. If the client comes back and sets it to the same
// value, then the layer can early out without needing a full commit.
@@ -1147,12 +1150,15 @@ void LayerTreeHost::ApplyScrollAndScale(ScrollAndScaleSet* info) {
}
ApplyPageScaleDeltaFromImplSide(info->page_scale_delta);
+ elastic_overscroll_ += info->elastic_overscroll_delta;
if (!settings_.use_pinch_virtual_viewport) {
client_->ApplyViewportDeltas(
inner_viewport_scroll_delta + outer_viewport_scroll_delta,
info->page_scale_delta,
info->top_controls_delta);
} else {
+ // TODO(ccameron): pass the elastic overscroll here so that input events
+ // may be translated appropriately.
client_->ApplyViewportDeltas(
inner_viewport_scroll_delta,
outer_viewport_scroll_delta,
« no previous file with comments | « cc/trees/layer_tree_host.h ('k') | cc/trees/layer_tree_host_common.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698