Index: ash/wm/workspace/auto_window_management.cc |
diff --git a/ash/wm/workspace/auto_window_management.cc b/ash/wm/workspace/auto_window_management.cc |
index fac0def4b2911f53bd3ef887355f08f66614b67e..31227a61c3d40a51ef0008a17ac2fc01989e46ac 100644 |
--- a/ash/wm/workspace/auto_window_management.cc |
+++ b/ash/wm/workspace/auto_window_management.cc |
@@ -8,9 +8,8 @@ |
#include "ash/screen_ash.h" |
#include "ash/shell.h" |
#include "ash/wm/mru_window_tracker.h" |
-#include "ash/wm/property_util.h" |
#include "ash/wm/window_animations.h" |
-#include "ash/wm/window_settings.h" |
+#include "ash/wm/window_state.h" |
#include "ash/wm/window_util.h" |
#include "base/command_line.h" |
#include "ui/aura/window.h" |
@@ -30,20 +29,20 @@ const int kWindowAutoMoveDurationMS = 125; |
// Check if any management should be performed (with a given |window|). |
bool UseAutoWindowManager(const aura::Window* window) { |
- const wm::WindowSettings* settings = wm::GetWindowSettings(window); |
- return settings->tracked_by_workspace() && |
- settings->window_position_managed(); |
+ const wm::WindowState* window_state = wm::GetWindowState(window); |
+ return window_state->tracked_by_workspace() && |
+ window_state->window_position_managed(); |
} |
// Check if a given |window| can be managed. This includes that it's state is |
// not minimized/maximized/the user has changed it's size by hand already. |
// It furthermore checks for the WindowIsManaged status. |
bool WindowPositionCanBeManaged(const aura::Window* window) { |
- const wm::WindowSettings* settings = wm::GetWindowSettings(window); |
- return settings->window_position_managed() && |
- !wm::IsWindowMinimized(window) && |
- !wm::IsWindowMaximized(window) && |
- !settings->bounds_changed_by_user(); |
+ const wm::WindowState* window_state = wm::GetWindowState(window); |
+ return window_state->window_position_managed() && |
+ !window_state->IsMinimized() && |
+ !window_state->IsMaximized() && |
+ !window_state->bounds_changed_by_user(); |
} |
// Get the work area for a given |window| in parent coordinates. |
@@ -104,7 +103,7 @@ void AutoPlaceSingleWindow(aura::Window* window, bool animated) { |
gfx::Rect work_area = GetWorkAreaForWindowInParent(window); |
gfx::Rect bounds = window->bounds(); |
const gfx::Rect* user_defined_area = |
- ash::wm::GetPreAutoManageWindowBounds(window); |
+ wm::GetWindowState(window)->pre_auto_manage_window_bounds(); |
if (user_defined_area) { |
bounds = *user_defined_area; |
ash::wm::AdjustBoundsToEnsureMinimumWindowVisibility(work_area, &bounds); |
@@ -155,7 +154,7 @@ aura::Window* GetReferenceWindow(const aura::RootWindow* root_window, |
window->type() == aura::client::WINDOW_TYPE_NORMAL && |
window->GetRootWindow() == root_window && |
window->TargetVisibility() && |
- wm::GetWindowSettings(window)->window_position_managed()) { |
+ wm::GetWindowState(window)->window_position_managed()) { |
if (found && found != window) { |
// no need to check !signle_window because the function must have |
// been already returned in the "if (!single_window)" below. |
@@ -187,8 +186,10 @@ void RearrangeVisibleWindowOnHideOrRemove(const aura::Window* removed_window) { |
} |
void RearrangeVisibleWindowOnShow(aura::Window* added_window) { |
+ wm::WindowState* added_window_state = wm::GetWindowState(added_window); |
+ |
if (!UseAutoWindowManager(added_window) || |
- wm::GetWindowSettings(added_window)->bounds_changed_by_user() || |
+ added_window_state->bounds_changed_by_user() || |
!added_window->TargetVisibility()) |
return; |
// Find a single open managed window. |
@@ -213,17 +214,18 @@ void RearrangeVisibleWindowOnShow(aura::Window* added_window) { |
// Push the other window to the size only if there are two windows left. |
if (single_window) { |
- // When going from one to two windows both windows loose their "positioned |
- // by user" flags. |
- wm::GetWindowSettings(added_window)->set_bounds_changed_by_user(false); |
- wm::GetWindowSettings(other_shown_window)-> |
- set_bounds_changed_by_user(false); |
+ // When going from one to two windows both windows loose their |
+ // "positioned by user" flags. |
+ added_window_state->set_bounds_changed_by_user(false); |
+ wm::WindowState* other_window_state = |
+ wm::GetWindowState(other_shown_window); |
+ other_window_state->set_bounds_changed_by_user(false); |
if (WindowPositionCanBeManaged(other_shown_window)) { |
// Don't override pre auto managed bounds as the current bounds |
// may not be original. |
- if (!ash::wm::GetPreAutoManageWindowBounds(other_shown_window)) |
- ash::wm::SetPreAutoManageWindowBounds(other_shown_window, other_bounds); |
+ if (!other_window_state->pre_auto_manage_window_bounds()) |
+ other_window_state->SetPreAutoManageWindowBounds(other_bounds); |
// Push away the other window after remembering its current position. |
if (MoveRectToOneSide(work_area, move_other_right, &other_bounds)) |
@@ -235,8 +237,8 @@ void RearrangeVisibleWindowOnShow(aura::Window* added_window) { |
// it also to the opposite location if needed. Since it is just |
// being shown, we do not need to animate it. |
gfx::Rect added_bounds = added_window->bounds(); |
- if (!ash::wm::GetPreAutoManageWindowBounds(added_window)) |
- ash::wm::SetPreAutoManageWindowBounds(added_window, added_bounds); |
+ if (!added_window_state->pre_auto_manage_window_bounds()) |
+ added_window_state->SetPreAutoManageWindowBounds(added_bounds); |
if (MoveRectToOneSide(work_area, !move_other_right, &added_bounds)) |
added_window->SetBounds(added_bounds); |
} |