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; |
} |