Index: ash/shell.cc |
diff --git a/ash/shell.cc b/ash/shell.cc |
index 34c386d6a6cd5681f149406a9258c71f010fa24c..d5d086d600c73fae7c40c15b6dc00fbe0fa81652 100644 |
--- a/ash/shell.cc |
+++ b/ash/shell.cc |
@@ -11,6 +11,7 @@ |
#include "ash/accelerators/accelerator_filter.h" |
#include "ash/accelerators/focus_manager_factory.h" |
#include "ash/accelerators/nested_dispatcher_controller.h" |
+#include "ash/accelerometer/accelerometer_controller.h" |
#include "ash/ash_switches.h" |
#include "ash/autoclick/autoclick_controller.h" |
#include "ash/desktop_background/desktop_background_controller.h" |
@@ -606,6 +607,7 @@ Shell::Shell(ShellDelegate* delegate) |
delegate_(delegate), |
window_positioner_(new WindowPositioner), |
activation_client_(NULL), |
+ accelerometer_controller_(new AccelerometerController()), |
#if defined(OS_CHROMEOS) |
output_configurator_(new ui::OutputConfigurator()), |
#endif // defined(OS_CHROMEOS) |
@@ -617,6 +619,7 @@ Shell::Shell(ShellDelegate* delegate) |
DCHECK(delegate_.get()); |
gpu_support_.reset(delegate_->CreateGPUSupport()); |
display_manager_.reset(new internal::DisplayManager); |
+ accelerometer_controller_->AddObserver(display_manager_.get()); |
display_controller_.reset(new DisplayController); |
#if defined(OS_CHROMEOS) && defined(USE_X11) |
user_metrics_recorder_.reset(new UserMetricsRecorder); |
@@ -752,6 +755,7 @@ Shell::~Shell() { |
// This also deletes all RootWindows. Note that we invoke Shutdown() on |
// DisplayController before resetting |display_controller_|, since destruction |
// of its owned RootWindowControllers relies on the value. |
+ accelerometer_controller_->RemoveObserver(display_manager_.get()); |
display_manager_->CreateScreenForShutdown(); |
display_controller_->Shutdown(); |
display_controller_.reset(); |