| Index: sky/shell/ui/animator.cc
|
| diff --git a/sky/shell/ui/animator.cc b/sky/shell/ui/animator.cc
|
| index 7b7fe3caca0fd510bb2ebcac9ef958d782ce4f72..ceca49942c3e904de70f3f9bc19088bbc9a59693 100644
|
| --- a/sky/shell/ui/animator.cc
|
| +++ b/sky/shell/ui/animator.cc
|
| @@ -16,6 +16,7 @@ Animator::Animator(const Engine::Config& config, Engine* engine)
|
| engine_(engine),
|
| engine_requested_frame_(false),
|
| frame_in_progress_(false),
|
| + paused_(false),
|
| weak_factory_(this) {
|
| }
|
|
|
| @@ -37,10 +38,16 @@ void Animator::RequestFrame() {
|
| }
|
| }
|
|
|
| -void Animator::CancelFrameRequest() {
|
| +void Animator::Stop() {
|
| + paused_ = true;
|
| engine_requested_frame_ = false;
|
| }
|
|
|
| +void Animator::Start() {
|
| + paused_ = false;
|
| + RequestFrame();
|
| +}
|
| +
|
| void Animator::BeginFrame() {
|
| DCHECK(frame_in_progress_);
|
| // There could be a request in the message loop at time of cancel.
|
| @@ -62,6 +69,9 @@ void Animator::BeginFrame() {
|
| void Animator::OnFrameComplete() {
|
| DCHECK(frame_in_progress_);
|
| frame_in_progress_ = false;
|
| + if (paused_)
|
| + return;
|
| +
|
| if (engine_requested_frame_) {
|
| frame_in_progress_ = true;
|
| BeginFrame();
|
|
|