Index: chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js |
diff --git a/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js b/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js |
index 6d6d8f26a1de06166ec926cf75faa0ffb2d44760..fbdb27f6aca89fa8c2a6568ed8b3c54c0e1b688c 100644 |
--- a/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js |
+++ b/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js |
@@ -195,6 +195,7 @@ function WallpaperManager(dialogDom) { |
* @private |
*/ |
WallpaperManager.prototype.toggleSurpriseMe_ = function() { |
+ var self = this; |
var checkbox = $('surprise-me').querySelector('#checkbox'); |
var shouldEnable = !checkbox.classList.contains('checked'); |
WallpaperUtil.saveToStorage(Constants.AccessSurpriseMeEnabledKey, |
@@ -203,6 +204,11 @@ function WallpaperManager(dialogDom) { |
if (shouldEnable) { |
checkbox.classList.add('checked'); |
} else { |
+ // Unchecking the "Surprise me" checkbox falls back to the previous |
+ // wallpaper before "Surprise me" was turned on. |
+ self.setSelectedWallpaper_(self.wallpaperGrid_.activeItem_); |
+ self.onWallpaperChanged_(self.wallpaperGrid_.activeItem_, |
+ self.currentWallpaper_); |
checkbox.classList.remove('checked'); |
} |
$('categories-list').disabled = shouldEnable; |
@@ -982,7 +988,7 @@ function WallpaperManager(dialogDom) { |
bar.style.width = selectedListItem.offsetWidth + 'px'; |
var wallpapersDataModel = new cr.ui.ArrayDataModel([]); |
- var selectedItem; |
+ var selectedItem = null; |
if (selectedListItem.custom) { |
this.document_.body.setAttribute('custom', ''); |
var errorHandler = this.onFileSystemError_.bind(this); |
@@ -1028,8 +1034,10 @@ function WallpaperManager(dialogDom) { |
}; |
wallpapersDataModel.push(lastElement); |
self.wallpaperGrid_.dataModel = wallpapersDataModel; |
- self.wallpaperGrid_.selectedItem = selectedItem; |
- self.wallpaperGrid_.activeItem = selectedItem; |
+ if (selectedItem) { |
+ self.wallpaperGrid_.selectedItem = selectedItem; |
+ self.wallpaperGrid_.activeItem = selectedItem; |
+ } |
}; |
var success = function(dirEntry) { |
@@ -1082,8 +1090,10 @@ function WallpaperManager(dialogDom) { |
} |
} |
this.wallpaperGrid_.dataModel = wallpapersDataModel; |
- this.wallpaperGrid_.selectedItem = selectedItem; |
- this.wallpaperGrid_.activeItem = selectedItem; |
+ if (selectedItem) { |
+ this.wallpaperGrid_.selectedItem = selectedItem; |
+ this.wallpaperGrid_.activeItem = selectedItem; |
+ } |
} |
}; |