summaryrefslogtreecommitdiffstats
path: root/ash/wm/maximize_mode/maximize_mode_window_manager.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ash/wm/maximize_mode/maximize_mode_window_manager.cc')
-rw-r--r--ash/wm/maximize_mode/maximize_mode_window_manager.cc13
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(