Index: ash/root_window_controller.h |
=================================================================== |
--- ash/root_window_controller.h (revision 160653) |
+++ ash/root_window_controller.h (working copy) |
@@ -27,6 +27,7 @@ |
class EventClientImpl; |
class RootWindowLayoutManager; |
class ScreenDimmer; |
+class SystemBackgroundController; |
class WorkspaceController; |
// This class maintains the per root window state for ash. This class |
@@ -57,9 +58,16 @@ |
aura::Window* GetContainer(int container_id); |
+ void InitLayoutManagers(); |
void CreateContainers(); |
- void InitLayoutManagers(); |
+ // Initializes |background_|. |is_first_run_after_boot| determines the |
+ // background's initial color. |
+ void CreateSystemBackground(bool is_first_run_after_boot); |
+ |
+ // Updates |background_| to be black after the desktop background is visible. |
+ void HandleDesktopBackgroundVisible(); |
+ |
// Deletes associated objects and clears the state, but doesn't delete |
// the root window yet. This is used to delete a secondary displays' |
// root window safely when the display disconnect signal is received, |
@@ -83,6 +91,12 @@ |
scoped_ptr<aura::RootWindow> root_window_; |
internal::RootWindowLayoutManager* root_window_layout_; |
+ // A background layer that's displayed beneath all other layers. Without |
+ // this, portions of the root window that aren't covered by layers will be |
+ // painted white; this can show up if e.g. it takes a long time to decode the |
+ // desktop background image when displaying the login screen. |
+ scoped_ptr<SystemBackgroundController> background_; |
+ |
// An event filter that pre-handles all key events to send them to an IME. |
scoped_ptr<internal::EventClientImpl> event_client_; |
scoped_ptr<internal::ScreenDimmer> screen_dimmer_; |