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

Side by Side Diff: ui/app_list/views/app_list_view.cc

Issue 138273006: Invokes SchedulePaint when animation ended to repaint the background. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix Created 6 years, 11 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "ui/app_list/views/app_list_view.h" 5 #include "ui/app_list/views/app_list_view.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/strings/string_util.h" 8 #include "base/strings/string_util.h"
9 #include "base/win/windows_version.h" 9 #include "base/win/windows_version.h"
10 #include "ui/app_list/app_list_constants.h" 10 #include "ui/app_list/app_list_constants.h"
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 return false; 80 return false;
81 #endif 81 #endif
82 return true; 82 return true;
83 } 83 }
84 84
85 } // namespace 85 } // namespace
86 86
87 // An animation observer to hide the view at the end of the animation. 87 // An animation observer to hide the view at the end of the animation.
88 class HideViewAnimationObserver : public ui::ImplicitAnimationObserver { 88 class HideViewAnimationObserver : public ui::ImplicitAnimationObserver {
89 public: 89 public:
90 HideViewAnimationObserver() : target_(NULL) { 90 HideViewAnimationObserver()
91 : frame_(NULL),
92 target_(NULL) {
91 } 93 }
92 94
93 virtual ~HideViewAnimationObserver() { 95 virtual ~HideViewAnimationObserver() {
94 if (target_) 96 if (target_)
95 StopObservingImplicitAnimations(); 97 StopObservingImplicitAnimations();
96 } 98 }
97 99
98 void SetTarget(views::View* target) { 100 void SetTarget(views::View* target) {
99 if (!target_) 101 if (!target_)
100 StopObservingImplicitAnimations(); 102 StopObservingImplicitAnimations();
101 target_ = target; 103 target_ = target;
102 } 104 }
103 105
106 void set_frame(views::BubbleFrameView* frame) { frame_ = frame; }
107
104 private: 108 private:
105 // Overridden from ui::ImplicitAnimationObserver: 109 // Overridden from ui::ImplicitAnimationObserver:
106 virtual void OnImplicitAnimationsCompleted() OVERRIDE { 110 virtual void OnImplicitAnimationsCompleted() OVERRIDE {
107 if (target_) { 111 if (target_) {
108 target_->SetVisible(false); 112 target_->SetVisible(false);
109 target_ = NULL; 113 target_ = NULL;
114
115 // Should update the background by invoking SchedulePaint().
116 frame_->SchedulePaint();
110 } 117 }
111 } 118 }
112 119
120 views::BubbleFrameView* frame_;
113 views::View* target_; 121 views::View* target_;
114 122
115 DISALLOW_COPY_AND_ASSIGN(HideViewAnimationObserver); 123 DISALLOW_COPY_AND_ASSIGN(HideViewAnimationObserver);
116 }; 124 };
117 125
118 //////////////////////////////////////////////////////////////////////////////// 126 ////////////////////////////////////////////////////////////////////////////////
119 // AppListView: 127 // AppListView:
120 128
121 AppListView::AppListView(AppListViewDelegate* delegate) 129 AppListView::AppListView(AppListViewDelegate* delegate)
122 : delegate_(delegate), 130 : delegate_(delegate),
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 440
433 bool recognizing = new_state != SPEECH_RECOGNITION_NOT_STARTED; 441 bool recognizing = new_state != SPEECH_RECOGNITION_NOT_STARTED;
434 // No change for this class. 442 // No change for this class.
435 if (speech_view_->visible() == recognizing) 443 if (speech_view_->visible() == recognizing)
436 return; 444 return;
437 445
438 if (recognizing) 446 if (recognizing)
439 speech_view_->Reset(); 447 speech_view_->Reset();
440 448
441 #if defined(USE_AURA) 449 #if defined(USE_AURA)
450 animation_observer_->set_frame(GetBubbleFrameView());
442 gfx::Transform speech_transform; 451 gfx::Transform speech_transform;
443 speech_transform.Translate( 452 speech_transform.Translate(
444 0, SkFloatToMScalar(kSpeechUIAppearingPosition)); 453 0, SkFloatToMScalar(kSpeechUIAppearingPosition));
445 if (recognizing) 454 if (recognizing)
446 speech_view_->layer()->SetTransform(speech_transform); 455 speech_view_->layer()->SetTransform(speech_transform);
447 456
448 { 457 {
449 ui::ScopedLayerAnimationSettings main_settings( 458 ui::ScopedLayerAnimationSettings main_settings(
450 app_list_main_view_->layer()->GetAnimator()); 459 app_list_main_view_->layer()->GetAnimator());
451 if (recognizing) { 460 if (recognizing) {
(...skipping 18 matching lines...) Expand all
470 speech_view_->layer()->SetTransform(speech_transform); 479 speech_view_->layer()->SetTransform(speech_transform);
471 } 480 }
472 481
473 if (recognizing) 482 if (recognizing)
474 speech_view_->SetVisible(true); 483 speech_view_->SetVisible(true);
475 else 484 else
476 app_list_main_view_->SetVisible(true); 485 app_list_main_view_->SetVisible(true);
477 #else 486 #else
478 speech_view_->SetVisible(recognizing); 487 speech_view_->SetVisible(recognizing);
479 app_list_main_view_->SetVisible(!recognizing); 488 app_list_main_view_->SetVisible(!recognizing);
480 #endif
481 489
482 // Needs to schedule paint of AppListView itself, to repaint the background. 490 // Needs to schedule paint of AppListView itself, to repaint the background.
483 SchedulePaint(); 491 GetBubbleFrameView()->SchedulePaint();
492 #endif
484 } 493 }
485 494
486 } // namespace app_list 495 } // namespace app_list
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698