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

Side by Side Diff: cc/input/top_controls_manager.cc

Issue 988693005: Chromium roll (https://codereview.chromium.org/976353002) (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: fixed bad android build patch Created 5 years, 9 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/input/top_controls_manager.h" 5 #include "cc/input/top_controls_manager.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "cc/animation/keyframed_animation_curve.h" 10 #include "cc/animation/keyframed_animation_curve.h"
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 } 94 }
95 95
96 void TopControlsManager::ScrollBegin() { 96 void TopControlsManager::ScrollBegin() {
97 DCHECK(!pinch_gesture_active_); 97 DCHECK(!pinch_gesture_active_);
98 ResetAnimations(); 98 ResetAnimations();
99 ResetBaseline(); 99 ResetBaseline();
100 } 100 }
101 101
102 gfx::Vector2dF TopControlsManager::ScrollBy( 102 gfx::Vector2dF TopControlsManager::ScrollBy(
103 const gfx::Vector2dF& pending_delta) { 103 const gfx::Vector2dF& pending_delta) {
104 if (!TopControlsHeight())
105 return pending_delta;
106
104 if (pinch_gesture_active_) 107 if (pinch_gesture_active_)
105 return pending_delta; 108 return pending_delta;
106 109
107 if (permitted_state_ == SHOWN && pending_delta.y() > 0) 110 if (permitted_state_ == SHOWN && pending_delta.y() > 0)
108 return pending_delta; 111 return pending_delta;
109 else if (permitted_state_ == HIDDEN && pending_delta.y() < 0) 112 else if (permitted_state_ == HIDDEN && pending_delta.y() < 0)
110 return pending_delta; 113 return pending_delta;
111 114
112 accumulated_scroll_delta_ += pending_delta.y(); 115 accumulated_scroll_delta_ += pending_delta.y();
113 116
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 } 176 }
174 177
175 void TopControlsManager::SetupAnimation(AnimationDirection direction) { 178 void TopControlsManager::SetupAnimation(AnimationDirection direction) {
176 DCHECK_NE(NO_ANIMATION, direction); 179 DCHECK_NE(NO_ANIMATION, direction);
177 DCHECK_IMPLIES(direction == HIDING_CONTROLS, TopControlsShownRatio() > 0.f); 180 DCHECK_IMPLIES(direction == HIDING_CONTROLS, TopControlsShownRatio() > 0.f);
178 DCHECK_IMPLIES(direction == SHOWING_CONTROLS, TopControlsShownRatio() < 1.f); 181 DCHECK_IMPLIES(direction == SHOWING_CONTROLS, TopControlsShownRatio() < 1.f);
179 182
180 if (top_controls_animation_ && animation_direction_ == direction) 183 if (top_controls_animation_ && animation_direction_ == direction)
181 return; 184 return;
182 185
186 if (!TopControlsHeight()) {
187 client_->SetCurrentTopControlsShownRatio(
188 direction == HIDING_CONTROLS ? 0.f : 1.f);
189 return;
190 }
191
183 top_controls_animation_ = KeyframedFloatAnimationCurve::Create(); 192 top_controls_animation_ = KeyframedFloatAnimationCurve::Create();
184 base::TimeDelta start_time = gfx::FrameTime::Now() - base::TimeTicks(); 193 base::TimeDelta start_time = gfx::FrameTime::Now() - base::TimeTicks();
185 top_controls_animation_->AddKeyframe( 194 top_controls_animation_->AddKeyframe(
186 FloatKeyframe::Create(start_time, TopControlsShownRatio(), nullptr)); 195 FloatKeyframe::Create(start_time, TopControlsShownRatio(), nullptr));
187 float max_ending_ratio = (direction == SHOWING_CONTROLS ? 1 : -1); 196 float max_ending_ratio = (direction == SHOWING_CONTROLS ? 1 : -1);
188 top_controls_animation_->AddKeyframe(FloatKeyframe::Create( 197 top_controls_animation_->AddKeyframe(FloatKeyframe::Create(
189 start_time + base::TimeDelta::FromMilliseconds(kShowHideMaxDurationMs), 198 start_time + base::TimeDelta::FromMilliseconds(kShowHideMaxDurationMs),
190 TopControlsShownRatio() + max_ending_ratio, 199 TopControlsShownRatio() + max_ending_ratio,
191 EaseTimingFunction::Create())); 200 EaseTimingFunction::Create()));
192 animation_direction_ = direction; 201 animation_direction_ = direction;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 } 234 }
226 return false; 235 return false;
227 } 236 }
228 237
229 void TopControlsManager::ResetBaseline() { 238 void TopControlsManager::ResetBaseline() {
230 accumulated_scroll_delta_ = 0.f; 239 accumulated_scroll_delta_ = 0.f;
231 baseline_content_offset_ = ContentTopOffset(); 240 baseline_content_offset_ = ContentTopOffset();
232 } 241 }
233 242
234 } // namespace cc 243 } // namespace cc
OLDNEW
« no previous file with comments | « cc/debug/rasterize_and_record_benchmark_impl.cc ('k') | cc/input/top_controls_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698