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

Unified Diff: ash/desktop_background/desktop_background_controller.cc

Issue 10827284: Fix white flash when user sings out and wallpaper animation regression (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Sky's review Created 8 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: ash/desktop_background/desktop_background_controller.cc
diff --git a/ash/desktop_background/desktop_background_controller.cc b/ash/desktop_background/desktop_background_controller.cc
index 2d49b4d18cd27d7c67b7d577080e3b74d7c976d5..3db42ec58b8ac0df8a65d52d13ab9fd8531e298a 100644
--- a/ash/desktop_background/desktop_background_controller.cc
+++ b/ash/desktop_background/desktop_background_controller.cc
@@ -106,7 +106,6 @@ DesktopBackgroundController::DesktopBackgroundController()
desktop_background_mode_(BACKGROUND_SOLID_COLOR),
background_color_(kTransparentColor),
weak_ptr_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {
- InstallComponentForAllWindows();
}
DesktopBackgroundController::~DesktopBackgroundController() {
@@ -213,22 +212,10 @@ void DesktopBackgroundController::CancelPendingWallpaperOperation() {
void DesktopBackgroundController::SetDesktopBackgroundSolidColorMode(
SkColor color) {
background_color_ = color;
- if (desktop_background_mode_ != BACKGROUND_SOLID_COLOR) {
+ if (desktop_background_mode_ != BACKGROUND_SOLID_COLOR)
desktop_background_mode_ = BACKGROUND_SOLID_COLOR;
- InstallComponentForAllWindows();
- return;
- }
- Shell::RootWindowList root_windows = Shell::GetAllRootWindows();
- for (Shell::RootWindowList::iterator iter = root_windows.begin();
- iter != root_windows.end(); ++iter) {
- aura::RootWindow* root_window = *iter;
- internal::DesktopBackgroundWidgetController* component = root_window->
- GetProperty(internal::kWindowDesktopComponent);
- DCHECK(component);
- DCHECK(component->layer());
- component->layer()->SetColor(background_color_ );
- }
+ InstallComponentForAllWindows();
}
void DesktopBackgroundController::CreateEmptyWallpaper() {
@@ -255,28 +242,15 @@ void DesktopBackgroundController::MoveDesktopToUnlockedContainer() {
void DesktopBackgroundController::OnWindowDestroying(aura::Window* window) {
window->SetProperty(internal::kWindowDesktopComponent,
static_cast<internal::DesktopBackgroundWidgetController*>(NULL));
+ window->SetProperty(internal::kComponentWrapper,
+ static_cast<internal::ComponentWrapper*>(NULL));
}
void DesktopBackgroundController::SetDesktopBackgroundImageMode() {
if (desktop_background_mode_ != BACKGROUND_IMAGE) {
sky 2012/08/13 17:31:05 Do you even need the if now?
bshe 2012/08/13 18:28:22 No need. Removed it. On 2012/08/13 17:31:05, sky
desktop_background_mode_ = BACKGROUND_IMAGE;
- InstallComponentForAllWindows();
- return;
- }
-
- Shell::RootWindowList root_windows = Shell::GetAllRootWindows();
- for (Shell::RootWindowList::iterator iter = root_windows.begin();
- iter != root_windows.end(); ++iter) {
- aura::RootWindow* root_window = *iter;
- internal::DesktopBackgroundWidgetController* component = root_window->
- GetProperty(internal::kWindowDesktopComponent);
- DCHECK(component);
- DCHECK(component->widget());
- aura::Window* window = component->widget()->GetNativeView();
- gfx::Rect bounds = window->bounds();
- window->SchedulePaintInRect(gfx::Rect(0, 0,
- bounds.width(), bounds.height()));
}
+ InstallComponentForAllWindows();
}
void DesktopBackgroundController::OnWallpaperLoadCompleted(
@@ -328,7 +302,8 @@ void DesktopBackgroundController::InstallComponent(
// First time for this root window
root_window->AddObserver(this);
}
- root_window->SetProperty(internal::kWindowDesktopComponent, component);
+ root_window->SetProperty(internal::kComponentWrapper,
+ new internal::ComponentWrapper(component));
}
void DesktopBackgroundController::InstallComponentForAllWindows() {

Powered by Google App Engine
This is Rietveld 408576698