Chromium Code Reviews| Index: ash/root_window_controller.cc |
| diff --git a/ash/root_window_controller.cc b/ash/root_window_controller.cc |
| index 5a798d7d85c01ff97130c3d73c5457c7b4919147..ab81ea614903761f0d9e9d69a2c7b76674169c47 100644 |
| --- a/ash/root_window_controller.cc |
| +++ b/ash/root_window_controller.cc |
| @@ -306,7 +306,7 @@ class CrosAccessibilityObserver : public AccessibilityObserver { |
| DISALLOW_COPY_AND_ASSIGN(CrosAccessibilityObserver); |
| }; |
| -#endif // OS_CHROMEOS |
| +#endif // OS_CHROMEOS |
|
jonross
2014/05/29 15:24:42
cpplint
|
| } // namespace |
| @@ -526,6 +526,11 @@ void RootWindowController::OnWallpaperAnimationFinished(views::Widget* widget) { |
| void RootWindowController::CloseChildWindows() { |
| mouse_event_target_.reset(); |
| + // Remove observer as deactivating keyboard causes |docked_layout_manager_| |
| + // to fire notifications. |
| + if (docked_layout_manager_ && shelf_ && shelf_->shelf_layout_manager()) |
| + docked_layout_manager_->RemoveObserver(shelf_->shelf_layout_manager()); |
| + |
| // Deactivate keyboard container before closing child windows and shutting |
| // down associated layout managers. |
| DeactivateKeyboard(keyboard::KeyboardController::GetInstance()); |
| @@ -537,8 +542,6 @@ void RootWindowController::CloseChildWindows() { |
| } |
| // docked_layout_manager_ needs to be shut down before windows are destroyed. |
| if (docked_layout_manager_) { |
| - if (shelf_ && shelf_->shelf_layout_manager()) |
| - docked_layout_manager_->RemoveObserver(shelf_->shelf_layout_manager()); |
| docked_layout_manager_->Shutdown(); |
| docked_layout_manager_ = NULL; |
| } |