diff options
author | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-17 22:41:55 +0000 |
---|---|---|
committer | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-17 22:41:55 +0000 |
commit | 871e9cc5b6bfc6f3a15ce9a3068dab6b7b23c9d7 (patch) | |
tree | 2ef6b9b27b6c2e8a9b1686cd5526642845bd76c5 /ash/shell.cc | |
parent | a9bc1a4bc7baac0d58582f8ee394f1f59db6408c (diff) | |
download | chromium_src-871e9cc5b6bfc6f3a15ce9a3068dab6b7b23c9d7.zip chromium_src-871e9cc5b6bfc6f3a15ce9a3068dab6b7b23c9d7.tar.gz chromium_src-871e9cc5b6bfc6f3a15ce9a3068dab6b7b23c9d7.tar.bz2 |
ash: Fix a crash with touch-hud.
There are two issues:
* Create the HUD after the containers are created to make sure the HUD window
gets parented correctly. This regressed in r141881.
* All windows get destroyed before the event-filters. So make sure the
event-filter doesn't try to destroy the window again on destruction. This
just went unnoticed since the crash happens when the session is terminating.
BUG=133092
TEST=manually
Review URL: https://chromiumcodereview.appspot.com/10532179
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@142654 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/shell.cc')
-rw-r--r-- | ash/shell.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/ash/shell.cc b/ash/shell.cc index c571527..59ac1f9 100644 --- a/ash/shell.cc +++ b/ash/shell.cc @@ -393,15 +393,16 @@ void Shell::Init() { capture_controller_.reset(new internal::CaptureController); + internal::RootWindowController* root_window_controller = + new internal::RootWindowController(root_window); + root_window_controller->CreateContainers(); + CommandLine* command_line = CommandLine::ForCurrentProcess(); if (command_line->HasSwitch(switches::kAshTouchHud)) { touch_observer_hud_.reset(new internal::TouchObserverHUD); AddEnvEventFilter(touch_observer_hud_.get()); } - internal::RootWindowController* root_window_controller = - new internal::RootWindowController(root_window); - root_window_controller->CreateContainers(); // Create Controllers that may need root window. // TODO(oshima): Move as many controllers before creating |