| 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() {
|
|
|