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

Side by Side Diff: cc/trees/layer_tree_host_impl.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/trees/layer_tree_host_impl.h ('k') | cc/trees/layer_tree_host_unittest_no_message_loop.cc » ('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_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 2935 matching lines...) Expand 10 before | Expand all | Expand 10 after
2946 scroll_info->top_controls_delta = active_tree()->top_controls_delta(); 2946 scroll_info->top_controls_delta = active_tree()->top_controls_delta();
2947 active_tree_->set_sent_top_controls_delta(scroll_info->top_controls_delta); 2947 active_tree_->set_sent_top_controls_delta(scroll_info->top_controls_delta);
2948 2948
2949 return scroll_info.Pass(); 2949 return scroll_info.Pass();
2950 } 2950 }
2951 2951
2952 void LayerTreeHostImpl::SetFullRootLayerDamage() { 2952 void LayerTreeHostImpl::SetFullRootLayerDamage() {
2953 SetViewportDamage(gfx::Rect(DrawViewportSize())); 2953 SetViewportDamage(gfx::Rect(DrawViewportSize()));
2954 } 2954 }
2955 2955
2956 void LayerTreeHostImpl::ScrollViewportInnerFirst(gfx::Vector2dF scroll_delta) {
2957 DCHECK(InnerViewportScrollLayer());
2958 LayerImpl* scroll_layer = InnerViewportScrollLayer();
2959
2960 gfx::Vector2dF unused_delta = scroll_layer->ScrollBy(scroll_delta);
2961 if (!unused_delta.IsZero() && OuterViewportScrollLayer())
2962 OuterViewportScrollLayer()->ScrollBy(unused_delta);
2963 }
2964
2956 void LayerTreeHostImpl::ScrollViewportBy(gfx::Vector2dF scroll_delta) { 2965 void LayerTreeHostImpl::ScrollViewportBy(gfx::Vector2dF scroll_delta) {
2957 DCHECK(InnerViewportScrollLayer()); 2966 DCHECK(InnerViewportScrollLayer());
2958 LayerImpl* scroll_layer = OuterViewportScrollLayer() 2967 LayerImpl* scroll_layer = OuterViewportScrollLayer()
2959 ? OuterViewportScrollLayer() 2968 ? OuterViewportScrollLayer()
2960 : InnerViewportScrollLayer(); 2969 : InnerViewportScrollLayer();
2961 2970
2962 gfx::Vector2dF unused_delta = scroll_layer->ScrollBy(scroll_delta); 2971 gfx::Vector2dF unused_delta = scroll_layer->ScrollBy(scroll_delta);
2963 2972
2964 if (!unused_delta.IsZero() && (scroll_layer == OuterViewportScrollLayer())) 2973 if (!unused_delta.IsZero() && (scroll_layer == OuterViewportScrollLayer()))
2965 InnerViewportScrollLayer()->ScrollBy(unused_delta); 2974 InnerViewportScrollLayer()->ScrollBy(unused_delta);
2966 } 2975 }
2967 2976
2968 void LayerTreeHostImpl::AnimatePageScale(base::TimeTicks monotonic_time) { 2977 void LayerTreeHostImpl::AnimatePageScale(base::TimeTicks monotonic_time) {
2969 if (!page_scale_animation_) 2978 if (!page_scale_animation_)
2970 return; 2979 return;
2971 2980
2972 gfx::Vector2dF scroll_total = active_tree_->TotalScrollOffset(); 2981 gfx::Vector2dF scroll_total = active_tree_->TotalScrollOffset();
2973 2982
2974 if (!page_scale_animation_->IsAnimationStarted()) 2983 if (!page_scale_animation_->IsAnimationStarted())
2975 page_scale_animation_->StartAnimation(monotonic_time); 2984 page_scale_animation_->StartAnimation(monotonic_time);
2976 2985
2977 active_tree_->SetPageScaleDelta( 2986 active_tree_->SetPageScaleDelta(
2978 page_scale_animation_->PageScaleFactorAtTime(monotonic_time) / 2987 page_scale_animation_->PageScaleFactorAtTime(monotonic_time) /
2979 active_tree_->page_scale_factor()); 2988 active_tree_->page_scale_factor());
2980 gfx::Vector2dF next_scroll = 2989 gfx::Vector2dF next_scroll =
2981 page_scale_animation_->ScrollOffsetAtTime(monotonic_time); 2990 page_scale_animation_->ScrollOffsetAtTime(monotonic_time);
2982 2991
2983 ScrollViewportBy(next_scroll - scroll_total); 2992 ScrollViewportInnerFirst(next_scroll - scroll_total);
2984 SetNeedsRedraw(); 2993 SetNeedsRedraw();
2985 2994
2986 if (page_scale_animation_->IsAnimationCompleteAtTime(monotonic_time)) { 2995 if (page_scale_animation_->IsAnimationCompleteAtTime(monotonic_time)) {
2987 page_scale_animation_.reset(); 2996 page_scale_animation_.reset();
2988 client_->SetNeedsCommitOnImplThread(); 2997 client_->SetNeedsCommitOnImplThread();
2989 client_->RenewTreePriority(); 2998 client_->RenewTreePriority();
2990 } else { 2999 } else {
2991 SetNeedsAnimate(); 3000 SetNeedsAnimate();
2992 } 3001 }
2993 } 3002 }
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after
3383 } 3392 }
3384 3393
3385 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) { 3394 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) {
3386 std::vector<PictureLayerImpl*>::iterator it = 3395 std::vector<PictureLayerImpl*>::iterator it =
3387 std::find(picture_layers_.begin(), picture_layers_.end(), layer); 3396 std::find(picture_layers_.begin(), picture_layers_.end(), layer);
3388 DCHECK(it != picture_layers_.end()); 3397 DCHECK(it != picture_layers_.end());
3389 picture_layers_.erase(it); 3398 picture_layers_.erase(it);
3390 } 3399 }
3391 3400
3392 } // namespace cc 3401 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.h ('k') | cc/trees/layer_tree_host_unittest_no_message_loop.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698