From 4dd774723032d372a9d70d8888728b508f46b95f Mon Sep 17 00:00:00 2001 From: "skuhne@chromium.org" Date: Sat, 12 Apr 2014 05:08:03 +0000 Subject: Addressing problems with non maximizable windows in always maximized mode as well as windows which get maximized in maximized mode BUG=353189,359714 TEST=unittest & visual verification Review URL: https://codereview.chromium.org/232023007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@263474 0039d316-1c4b-4281-b951-d872f2087c98 --- ash/wm/maximize_mode/maximize_mode_window_manager.cc | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'ash/wm/maximize_mode/maximize_mode_window_manager.cc') 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( -- cgit v1.1