| 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 2f4e6334ff3f250a068c535943cca452c49d5c6d..d1c67a93f0db256e4869c6aaf645fcb014347b39 100644
|
| --- a/ash/desktop_background/desktop_background_controller.cc
|
| +++ b/ash/desktop_background/desktop_background_controller.cc
|
| @@ -169,7 +169,7 @@ DesktopBackgroundController::~DesktopBackgroundController() {
|
|
|
| gfx::ImageSkia DesktopBackgroundController::GetWallpaper() const {
|
| if (current_wallpaper_)
|
| - return current_wallpaper_->wallpaper_image();
|
| + return current_wallpaper_->image();
|
| return gfx::ImageSkia();
|
| }
|
|
|
| @@ -189,18 +189,18 @@ WallpaperLayout DesktopBackgroundController::GetWallpaperLayout() const {
|
| return WALLPAPER_LAYOUT_CENTER_CROPPED;
|
| }
|
|
|
| -void DesktopBackgroundController::OnRootWindowAdded(
|
| - aura::Window* root_window) {
|
| +void DesktopBackgroundController::OnRootWindowAdded(aura::Window* root_window) {
|
| // The background hasn't been set yet.
|
| if (desktop_background_mode_ == BACKGROUND_NONE)
|
| return;
|
| - gfx::Size max_display_size = GetMaxDisplaySizeInNative();
|
| +
|
| // Handle resolution change for "built-in" images.
|
| - if (BACKGROUND_IMAGE == desktop_background_mode_ &&
|
| - current_wallpaper_.get() &&
|
| - current_max_display_size_ != max_display_size) {
|
| + gfx::Size max_display_size = GetMaxDisplaySizeInNative();
|
| + if (current_max_display_size_ != max_display_size) {
|
| current_max_display_size_ = max_display_size;
|
| - UpdateWallpaper();
|
| + if (desktop_background_mode_ == BACKGROUND_IMAGE &&
|
| + current_wallpaper_.get())
|
| + UpdateWallpaper();
|
| }
|
|
|
| InstallDesktopController(root_window);
|
| @@ -306,11 +306,14 @@ void DesktopBackgroundController::OnDisplayConfigurationChanged() {
|
| gfx::Size max_display_size = GetMaxDisplaySizeInNative();
|
| if (current_max_display_size_ != max_display_size) {
|
| current_max_display_size_ = max_display_size;
|
| - timer_.Stop();
|
| - timer_.Start(FROM_HERE,
|
| - base::TimeDelta::FromMilliseconds(wallpaper_reload_delay_),
|
| - this,
|
| - &DesktopBackgroundController::UpdateWallpaper);
|
| + if (desktop_background_mode_ == BACKGROUND_IMAGE &&
|
| + current_wallpaper_.get()) {
|
| + timer_.Stop();
|
| + timer_.Start(FROM_HERE,
|
| + base::TimeDelta::FromMilliseconds(wallpaper_reload_delay_),
|
| + this,
|
| + &DesktopBackgroundController::UpdateWallpaper);
|
| + }
|
| }
|
| }
|
|
|
| @@ -327,7 +330,8 @@ bool DesktopBackgroundController::DefaultWallpaperIsAlreadyLoadingOrLoaded(
|
| bool DesktopBackgroundController::CustomWallpaperIsAlreadyLoaded(
|
| const gfx::ImageSkia& image) const {
|
| return current_wallpaper_.get() &&
|
| - current_wallpaper_->wallpaper_image().BackedBySameObjectAs(image);
|
| + (WallpaperResizer::GetImageId(image) ==
|
| + current_wallpaper_->original_image_id());
|
| }
|
|
|
| void DesktopBackgroundController::SetDesktopBackgroundImageMode() {
|
|
|