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..6a743e3f7978fe797785db61b06c4d830ddb8034 100644 |
--- a/ash/desktop_background/desktop_background_controller.cc |
+++ b/ash/desktop_background/desktop_background_controller.cc |
@@ -120,6 +120,7 @@ class DesktopBackgroundController::WallpaperLoader |
if (file_bitmap_) { |
gfx::ImageSkia image = gfx::ImageSkia::CreateFrom1xBitmap(*file_bitmap_); |
+ image.MakeThreadSafe(); |
wallpaper_resizer_.reset(new WallpaperResizer( |
image, GetMaxDisplaySizeInNative(), file_layout_)); |
} else { |
@@ -169,7 +170,7 @@ DesktopBackgroundController::~DesktopBackgroundController() { |
gfx::ImageSkia DesktopBackgroundController::GetWallpaper() const { |
if (current_wallpaper_) |
- return current_wallpaper_->wallpaper_image(); |
+ return current_wallpaper_->image(); |
return gfx::ImageSkia(); |
} |
@@ -196,7 +197,7 @@ void DesktopBackgroundController::OnRootWindowAdded( |
return; |
gfx::Size max_display_size = GetMaxDisplaySizeInNative(); |
// Handle resolution change for "built-in" images. |
- if (BACKGROUND_IMAGE == desktop_background_mode_ && |
+ if (desktop_background_mode_ == BACKGROUND_IMAGE && |
current_wallpaper_.get() && |
current_max_display_size_ != max_display_size) { |
current_max_display_size_ = max_display_size; |
@@ -304,7 +305,9 @@ bool DesktopBackgroundController::MoveDesktopToUnlockedContainer() { |
void DesktopBackgroundController::OnDisplayConfigurationChanged() { |
gfx::Size max_display_size = GetMaxDisplaySizeInNative(); |
- if (current_max_display_size_ != max_display_size) { |
+ if (desktop_background_mode_ == BACKGROUND_IMAGE && |
+ current_wallpaper_.get() && |
+ current_max_display_size_ != max_display_size) { |
current_max_display_size_ = max_display_size; |
timer_.Stop(); |
timer_.Start(FROM_HERE, |
@@ -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() { |