Index: ash/shell.cc |
diff --git a/ash/shell.cc b/ash/shell.cc |
index c0a555f40681e5d46a5b04c2d86df0c626e18f93..663d7e1807a9a18e18daa7aea128e41f68196c8d 100644 |
--- a/ash/shell.cc |
+++ b/ash/shell.cc |
@@ -27,6 +27,7 @@ |
#include "ash/system/tray/system_tray.h" |
#include "ash/system/tray/system_tray_delegate.h" |
#include "ash/tooltips/tooltip_controller.h" |
+#include "ash/touch/touch_observer_hud.h" |
#include "ash/wm/activation_controller.h" |
#include "ash/wm/app_list_controller.h" |
#include "ash/wm/base_layout_manager.h" |
@@ -553,6 +554,8 @@ Shell::~Shell() { |
#if !defined(OS_MACOSX) |
RemoveRootWindowEventFilter(accelerator_filter_.get()); |
#endif |
+ if (touch_observer_hud_.get()) |
+ RemoveRootWindowEventFilter(touch_observer_hud_.get()); |
// Close background widget now so that the focus manager of the |
// widget gets deleted in the final message loop run. |
@@ -684,6 +687,13 @@ void Shell::Init() { |
CreateSpecialContainers(root_window); |
+ CommandLine* command_line = CommandLine::ForCurrentProcess(); |
+ |
+ if (command_line->HasSwitch(switches::kAshTouchHud)) { |
+ touch_observer_hud_.reset(new internal::TouchObserverHUD); |
+ AddRootWindowEventFilter(touch_observer_hud_.get()); |
+ } |
+ |
stacking_controller_.reset(new internal::StackingController); |
root_window_layout_ = new internal::RootWindowLayoutManager(root_window); |
@@ -691,8 +701,6 @@ void Shell::Init() { |
event_client_.reset(new internal::EventClientImpl(root_window)); |
- CommandLine* command_line = CommandLine::ForCurrentProcess(); |
- |
tray_.reset(new SystemTray()); |
if (delegate_.get()) |
tray_delegate_.reset(delegate_->CreateSystemTrayDelegate(tray_.get())); |