Index: ash/desktop_background/desktop_background_controller.h |
diff --git a/ash/desktop_background/desktop_background_controller.h b/ash/desktop_background/desktop_background_controller.h |
index 4955d20bc26f3984a24b04dfd77b75da60087432..fdcd7489aaa8f06fa3e96766e05fb2f7ade256ea 100644 |
--- a/ash/desktop_background/desktop_background_controller.h |
+++ b/ash/desktop_background/desktop_background_controller.h |
@@ -6,12 +6,14 @@ |
#define ASH_DESKTOP_BACKGROUND_DESKTOP_BACKGROUND_CONTROLLER_H_ |
#include "ash/ash_export.h" |
+#include "ash/display/display_controller.h" |
#include "base/basictypes.h" |
#include "base/files/file_path.h" |
#include "base/gtest_prod_util.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/memory/weak_ptr.h" |
#include "base/observer_list.h" |
+#include "base/timer/timer.h" |
#include "ui/aura/window.h" |
#include "ui/compositor/layer.h" |
#include "ui/gfx/image/image_skia.h" |
@@ -65,7 +67,8 @@ class WallpaperResizer; |
// Loads selected desktop wallpaper from file system asynchronously and updates |
// background layer if loaded successfully. |
-class ASH_EXPORT DesktopBackgroundController { |
+class ASH_EXPORT DesktopBackgroundController |
+ : public DisplayController::Observer { |
public: |
enum BackgroundMode { |
BACKGROUND_NONE, |
@@ -128,6 +131,9 @@ class ASH_EXPORT DesktopBackgroundController { |
// Returns true if the desktop moved. |
bool MoveDesktopToUnlockedContainer(); |
+ // Overrides DisplayController::Observer: |
+ virtual void OnDisplayConfigurationChanged() OVERRIDE; |
+ |
private: |
friend class DesktopBackgroundControllerTest; |
FRIEND_TEST_ALL_PREFIXES(DesktopBackgroundControllerTest, GetMaxDisplaySize); |
@@ -170,6 +176,13 @@ class ASH_EXPORT DesktopBackgroundController { |
// Send notification that background animation finished. |
void NotifyAnimationFinished(); |
+ // Reload the wallpaper. |
+ void UpdateWallpaper(); |
+ |
+ void set_wallpaper_reload_delay_for_test(bool value) { |
+ wallpaper_reload_delay_ = value; |
+ } |
+ |
// Returns the maximum size of all displays combined in native |
// resolutions. Note that this isn't the bounds of the display who |
// has maximum resolutions. Instead, this returns the size of the |
@@ -197,10 +210,16 @@ class ASH_EXPORT DesktopBackgroundController { |
base::FilePath current_default_wallpaper_path_; |
int current_default_wallpaper_resource_id_; |
+ gfx::Size current_max_display_size_; |
+ |
scoped_refptr<WallpaperLoader> wallpaper_loader_; |
base::WeakPtrFactory<DesktopBackgroundController> weak_ptr_factory_; |
+ base::OneShotTimer<DesktopBackgroundController> timer_; |
+ |
+ int wallpaper_reload_delay_; |
+ |
DISALLOW_COPY_AND_ASSIGN(DesktopBackgroundController); |
}; |