diff options
Diffstat (limited to 'ash/wm/maximize_mode/maximize_mode_window_manager.cc')
-rw-r--r-- | ash/wm/maximize_mode/maximize_mode_window_manager.cc | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/ash/wm/maximize_mode/maximize_mode_window_manager.cc b/ash/wm/maximize_mode/maximize_mode_window_manager.cc index 9514b4f..964f77a 100644 --- a/ash/wm/maximize_mode/maximize_mode_window_manager.cc +++ b/ash/wm/maximize_mode/maximize_mode_window_manager.cc @@ -11,6 +11,7 @@ #include "ash/wm/maximize_mode/workspace_backdrop_delegate.h" #include "ash/wm/mru_window_tracker.h" #include "ash/wm/overview/window_selector_controller.h" +#include "ash/wm/wm_event.h" #include "ash/wm/workspace_controller.h" #include "ui/aura/window.h" #include "ui/gfx/screen.h" @@ -62,12 +63,18 @@ void MaximizeModeWindowManager::OnWindowDestroying(aura::Window* window) { ForgetWindow(window); } -void MaximizeModeWindowManager::OnWindowAdded( - aura::Window* window) { +void MaximizeModeWindowManager::OnWindowAdded(aura::Window* window) { // A window can get removed and then re-added by a drag and drop operation. if (IsContainerWindow(window->parent()) && - window_state_map_.find(window) == window_state_map_.end()) + window_state_map_.find(window) == window_state_map_.end()) { MaximizeAndTrackWindow(window); + // When the state got added, the "WM_EVENT_ADDED_TO_WORKSPACE" event got + // already sent and we have to notify our state again. + if (window_state_map_.find(window) != window_state_map_.end()) { + wm::WMEvent event(wm::WM_EVENT_ADDED_TO_WORKSPACE); + wm::GetWindowState(window)->OnWMEvent(&event); + } + } } void MaximizeModeWindowManager::OnWindowBoundsChanged( |