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

Side by Side Diff: cc/trees/layer_tree_host.cc

Issue 585063002: Made double-tap zoom work in pinch virtual viewport mode (Chromium-side). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Another build fix Created 6 years, 3 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 unified diff | Download patch
« no previous file with comments | « cc/test/layer_tree_test.cc ('k') | cc/trees/layer_tree_host_client.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/trees/layer_tree_host.h" 5 #include "cc/trees/layer_tree_host.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <stack> 8 #include <stack>
9 #include <string> 9 #include <string>
10 10
(...skipping 1073 matching lines...) Expand 10 before | Expand all | Expand 10 after
1084 } 1084 }
1085 } 1085 }
1086 1086
1087 if (!inner_viewport_scroll_delta.IsZero() || 1087 if (!inner_viewport_scroll_delta.IsZero() ||
1088 !outer_viewport_scroll_delta.IsZero() || 1088 !outer_viewport_scroll_delta.IsZero() ||
1089 info->page_scale_delta != 1.f || 1089 info->page_scale_delta != 1.f ||
1090 info->top_controls_delta) { 1090 info->top_controls_delta) {
1091 // SetScrollOffsetFromImplSide above could have destroyed the tree, 1091 // SetScrollOffsetFromImplSide above could have destroyed the tree,
1092 // so re-get this layer before doing anything to it. 1092 // so re-get this layer before doing anything to it.
1093 1093
1094 DCHECK(inner_viewport_scroll_layer_.get()); // We should always have this.
1095
1094 // Preemptively apply the scroll offset and scale delta here before sending 1096 // Preemptively apply the scroll offset and scale delta here before sending
1095 // it to the client. If the client comes back and sets it to the same 1097 // it to the client. If the client comes back and sets it to the same
1096 // value, then the layer can early out without needing a full commit. 1098 // value, then the layer can early out without needing a full commit.
1097 DCHECK(inner_viewport_scroll_layer_.get()); // We should always have this.
1098
1099 inner_viewport_scroll_layer_->SetScrollOffsetFromImplSide( 1099 inner_viewport_scroll_layer_->SetScrollOffsetFromImplSide(
1100 inner_viewport_scroll_layer_->scroll_offset() + 1100 inner_viewport_scroll_layer_->scroll_offset() +
1101 inner_viewport_scroll_delta); 1101 inner_viewport_scroll_delta);
1102 if (outer_viewport_scroll_layer_.get()) { 1102 if (outer_viewport_scroll_layer_.get()) {
1103 outer_viewport_scroll_layer_->SetScrollOffsetFromImplSide( 1103 outer_viewport_scroll_layer_->SetScrollOffsetFromImplSide(
1104 outer_viewport_scroll_layer_->scroll_offset() + 1104 outer_viewport_scroll_layer_->scroll_offset() +
1105 outer_viewport_scroll_delta); 1105 outer_viewport_scroll_delta);
1106 } 1106 }
1107
1107 ApplyPageScaleDeltaFromImplSide(info->page_scale_delta); 1108 ApplyPageScaleDeltaFromImplSide(info->page_scale_delta);
1108 1109 if (!outer_viewport_scroll_layer_.get()) {
1109 client_->ApplyViewportDeltas( 1110 client_->ApplyViewportDeltas(
1110 inner_viewport_scroll_delta + outer_viewport_scroll_delta, 1111 inner_viewport_scroll_delta + outer_viewport_scroll_delta,
1111 info->page_scale_delta, 1112 info->page_scale_delta,
1112 info->top_controls_delta); 1113 info->top_controls_delta);
1114 } else {
1115 client_->ApplyViewportDeltas(
1116 inner_viewport_scroll_delta,
1117 outer_viewport_scroll_delta,
1118 info->page_scale_delta,
1119 info->top_controls_delta);
1120 }
1113 } 1121 }
1114 } 1122 }
1115 1123
1116 void LayerTreeHost::StartRateLimiter() { 1124 void LayerTreeHost::StartRateLimiter() {
1117 if (inside_begin_main_frame_) 1125 if (inside_begin_main_frame_)
1118 return; 1126 return;
1119 1127
1120 if (!rate_limit_timer_.IsRunning()) { 1128 if (!rate_limit_timer_.IsRunning()) {
1121 rate_limit_timer_.Start(FROM_HERE, 1129 rate_limit_timer_.Start(FROM_HERE,
1122 base::TimeDelta(), 1130 base::TimeDelta(),
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
1317 swap_promise_list_.push_back(swap_promise.Pass()); 1325 swap_promise_list_.push_back(swap_promise.Pass());
1318 } 1326 }
1319 1327
1320 void LayerTreeHost::BreakSwapPromises(SwapPromise::DidNotSwapReason reason) { 1328 void LayerTreeHost::BreakSwapPromises(SwapPromise::DidNotSwapReason reason) {
1321 for (size_t i = 0; i < swap_promise_list_.size(); i++) 1329 for (size_t i = 0; i < swap_promise_list_.size(); i++)
1322 swap_promise_list_[i]->DidNotSwap(reason); 1330 swap_promise_list_[i]->DidNotSwap(reason);
1323 swap_promise_list_.clear(); 1331 swap_promise_list_.clear();
1324 } 1332 }
1325 1333
1326 } // namespace cc 1334 } // namespace cc
OLDNEW
« no previous file with comments | « cc/test/layer_tree_test.cc ('k') | cc/trees/layer_tree_host_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698