| 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..09b05aae84ac9cdaff0c7ff4abf9b6edbac27b14 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,9 @@ void DesktopBackgroundController::CancelPendingWallpaperOperation() {
|
| void DesktopBackgroundController::SetDesktopBackgroundSolidColorMode(
|
| SkColor color) {
|
| background_color_ = color;
|
| - if (desktop_background_mode_ != BACKGROUND_SOLID_COLOR) {
|
| - desktop_background_mode_ = BACKGROUND_SOLID_COLOR;
|
| - InstallComponentForAllWindows();
|
| - return;
|
| - }
|
| + desktop_background_mode_ = BACKGROUND_SOLID_COLOR;
|
|
|
| - 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 +241,13 @@ 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) {
|
| - 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()));
|
| - }
|
| + desktop_background_mode_ = BACKGROUND_IMAGE;
|
| + InstallComponentForAllWindows();
|
| }
|
|
|
| void DesktopBackgroundController::OnWallpaperLoadCompleted(
|
| @@ -328,7 +299,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() {
|
|
|