Index: ash/shell.cc |
diff --git a/ash/shell.cc b/ash/shell.cc |
index 7bc8dd9cd2158cb256c2ed4b189b5cc4d7de45c1..493ae7c5b9d0ac906845925fd4a9815370aa68ca 100644 |
--- a/ash/shell.cc |
+++ b/ash/shell.cc |
@@ -114,6 +114,7 @@ |
#if defined(USE_X11) |
#include "ash/accelerators/magnifier_key_scroller.h" |
#include "ash/accelerators/spoken_feedback_toggler.h" |
+#include "ash/touch/touch_transformer_controller.h" |
#include "ui/gfx/x/x11_types.h" |
#endif // defined(USE_X11) |
#include "ash/ash_constants.h" |
@@ -756,6 +757,10 @@ Shell::~Shell() { |
desktop_background_controller_.reset(); |
mouse_cursor_filter_.reset(); |
+#if defined(OS_CHROMEOS) && defined(USE_X11) |
+ touch_transformer_controller_.reset(); |
+#endif // defined(OS_CHROMEOS) && defined(USE_X11) |
+ |
// 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. |
@@ -987,6 +992,13 @@ void Shell::Init() { |
base::Unretained(system_tray_delegate_.get())))); |
#endif |
+#if defined(OS_CHROMEOS) && defined(USE_X11) |
+ // Create TouchTransformerController before DisplayController::InitDisplays() |
+ // since TouchTransformerController listens on |
+ // DisplayController::Observer::OnDisplaysInitialized(). |
+ touch_transformer_controller_.reset(new TouchTransformerController()); |
+#endif // defined(OS_CHROMEOS) && defined(USE_X11) |
+ |
display_controller_->InitDisplays(); |
// It needs to be created after RootWindowController has been created |