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

Side by Side Diff: cc/layers/layer_impl.cc

Issue 642113004: cc: Damage layer on delegated scroll (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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/layers/layer_impl.h ('k') | cc/trees/layer_tree_host_impl.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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/layers/layer_impl.h" 5 #include "cc/layers/layer_impl.h"
6 6
7 #include "base/debug/trace_event.h" 7 #include "base/debug/trace_event.h"
8 #include "base/debug/trace_event_argument.h" 8 #include "base/debug/trace_event_argument.h"
9 #include "base/json/json_reader.h" 9 #include "base/json/json_reader.h"
10 #include "base/strings/stringprintf.h" 10 #include "base/strings/stringprintf.h"
(...skipping 1061 matching lines...) Expand 10 before | Expand all | Expand 10 after
1072 scroll_offset_delegate_ = scroll_offset_delegate; 1072 scroll_offset_delegate_ = scroll_offset_delegate;
1073 if (scroll_offset_delegate_) 1073 if (scroll_offset_delegate_)
1074 scroll_offset_delegate_->SetTotalScrollOffset(total_offset); 1074 scroll_offset_delegate_->SetTotalScrollOffset(total_offset);
1075 } 1075 }
1076 1076
1077 bool LayerImpl::IsExternalFlingActive() const { 1077 bool LayerImpl::IsExternalFlingActive() const {
1078 return scroll_offset_delegate_ && 1078 return scroll_offset_delegate_ &&
1079 scroll_offset_delegate_->IsExternalFlingActive(); 1079 scroll_offset_delegate_->IsExternalFlingActive();
1080 } 1080 }
1081 1081
1082 void LayerImpl::OnDelegatedScrollOffsetChanged() {
1083 NoteLayerPropertyChangedForSubtree();
1084 ScrollbarParametersDidChange(false);
1085 }
1086
1082 void LayerImpl::SetScrollOffset(const gfx::ScrollOffset& scroll_offset) { 1087 void LayerImpl::SetScrollOffset(const gfx::ScrollOffset& scroll_offset) {
1083 SetScrollOffsetAndDelta(scroll_offset, ScrollDelta()); 1088 SetScrollOffsetAndDelta(scroll_offset, ScrollDelta());
1084 } 1089 }
1085 1090
1086 void LayerImpl::SetScrollOffsetAndDelta(const gfx::ScrollOffset& scroll_offset, 1091 void LayerImpl::SetScrollOffsetAndDelta(const gfx::ScrollOffset& scroll_offset,
1087 const gfx::Vector2dF& scroll_delta) { 1092 const gfx::Vector2dF& scroll_delta) {
1088 bool changed = false; 1093 bool changed = false;
1089 1094
1090 last_scroll_offset_ = scroll_offset; 1095 last_scroll_offset_ = scroll_offset;
1091 1096
(...skipping 23 matching lines...) Expand all
1115 1120
1116 if (scroll_offset_delegate_) { 1121 if (scroll_offset_delegate_) {
1117 scroll_offset_delegate_->SetTotalScrollOffset( 1122 scroll_offset_delegate_->SetTotalScrollOffset(
1118 ScrollOffsetWithDelta(scroll_offset_, scroll_delta)); 1123 ScrollOffsetWithDelta(scroll_offset_, scroll_delta));
1119 } else { 1124 } else {
1120 scroll_delta_ = scroll_delta; 1125 scroll_delta_ = scroll_delta;
1121 } 1126 }
1122 } 1127 }
1123 1128
1124 if (changed) { 1129 if (changed) {
1125 NoteLayerPropertyChangedForSubtree(); 1130 OnDelegatedScrollOffsetChanged();
enne (OOO) 2014/10/10 18:10:17 bikeshed: This isn't really just for "delegated" i
boliu 2014/10/10 18:23:11 Sounds good. Done.
1126 ScrollbarParametersDidChange(false);
1127 } 1131 }
1128 } 1132 }
1129 1133
1130 gfx::Vector2dF LayerImpl::ScrollDelta() const { 1134 gfx::Vector2dF LayerImpl::ScrollDelta() const {
1131 if (scroll_offset_delegate_) { 1135 if (scroll_offset_delegate_) {
1132 return scroll_offset_delegate_->GetTotalScrollOffset().DeltaFrom( 1136 return scroll_offset_delegate_->GetTotalScrollOffset().DeltaFrom(
1133 scroll_offset_); 1137 scroll_offset_);
1134 } 1138 }
1135 return scroll_delta_; 1139 return scroll_delta_;
1136 } 1140 }
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after
1556 } 1560 }
1557 1561
1558 void LayerImpl::NotifyAnimationFinished( 1562 void LayerImpl::NotifyAnimationFinished(
1559 base::TimeTicks monotonic_time, 1563 base::TimeTicks monotonic_time,
1560 Animation::TargetProperty target_property) { 1564 Animation::TargetProperty target_property) {
1561 if (target_property == Animation::ScrollOffset) 1565 if (target_property == Animation::ScrollOffset)
1562 layer_tree_impl_->InputScrollAnimationFinished(); 1566 layer_tree_impl_->InputScrollAnimationFinished();
1563 } 1567 }
1564 1568
1565 } // namespace cc 1569 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/layer_impl.h ('k') | cc/trees/layer_tree_host_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698