| Index: ash/common/wm/workspace/workspace_layout_manager.cc
|
| diff --git a/ash/common/wm/workspace/workspace_layout_manager.cc b/ash/common/wm/workspace/workspace_layout_manager.cc
|
| index 61c188c0619372c586d32023d25f014b39f51989..0f5ed64b4daed6f8d9c358be9e7489aa665581fb 100644
|
| --- a/ash/common/wm/workspace/workspace_layout_manager.cc
|
| +++ b/ash/common/wm/workspace/workspace_layout_manager.cc
|
| @@ -23,6 +23,8 @@
|
| #include "base/command_line.h"
|
| #include "ui/base/ui_base_switches.h"
|
| #include "ui/compositor/layer.h"
|
| +#include "ui/display/display.h"
|
| +#include "ui/display/screen.h"
|
| #include "ui/keyboard/keyboard_controller.h"
|
| #include "ui/keyboard/keyboard_controller_observer.h"
|
|
|
| @@ -38,7 +40,7 @@ WorkspaceLayoutManager::WorkspaceLayoutManager(WmWindow* window)
|
| shell_->AddShellObserver(this);
|
| shell_->AddActivationObserver(this);
|
| root_window_->AddObserver(this);
|
| - root_window_controller_->AddObserver(this);
|
| + display::Screen::GetScreen()->AddObserver(this);
|
| DCHECK(window->GetBoolProperty(
|
| WmWindowProperty::SNAP_CHILDREN_TO_PIXEL_BOUNDARY));
|
| }
|
| @@ -51,7 +53,7 @@ WorkspaceLayoutManager::~WorkspaceLayoutManager() {
|
| window_state->RemoveObserver(this);
|
| window->RemoveObserver(this);
|
| }
|
| - root_window_->GetRootWindowController()->RemoveObserver(this);
|
| + display::Screen::GetScreen()->RemoveObserver(this);
|
| shell_->RemoveActivationObserver(this);
|
| shell_->RemoveShellObserver(this);
|
| }
|
| @@ -174,19 +176,6 @@ void WorkspaceLayoutManager::OnKeyboardBoundsChanging(
|
| }
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| -// WorkspaceLayoutManager, WmRootWindowControllerObserver implementation:
|
| -
|
| -void WorkspaceLayoutManager::OnWorkAreaChanged() {
|
| - const gfx::Rect work_area(wm::GetDisplayWorkAreaBounds(window_));
|
| - if (work_area != work_area_in_parent_) {
|
| - const wm::WMEvent event(wm::WM_EVENT_WORKAREA_BOUNDS_CHANGED);
|
| - AdjustAllWindowsBoundsForWorkAreaChange(&event);
|
| - }
|
| - if (backdrop_delegate_)
|
| - backdrop_delegate_->OnDisplayWorkAreaInsetsChanged();
|
| -}
|
| -
|
| -//////////////////////////////////////////////////////////////////////////////
|
| // WorkspaceLayoutManager, aura::WindowObserver implementation:
|
|
|
| void WorkspaceLayoutManager::OnWindowTreeChanged(
|
| @@ -282,6 +271,24 @@ void WorkspaceLayoutManager::OnPostWindowStateTypeChange(
|
| }
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| +// WorkspaceLayoutManager, display::DisplayObserver implementation:
|
| +
|
| +void WorkspaceLayoutManager::OnDisplayMetricsChanged(
|
| + const display::Display& display,
|
| + uint32_t changed_metrics) {
|
| + if (window_->GetDisplayNearestWindow().id() != display.id())
|
| + return;
|
| +
|
| + const gfx::Rect work_area(wm::GetDisplayWorkAreaBounds(window_));
|
| + if (work_area != work_area_in_parent_) {
|
| + const wm::WMEvent event(wm::WM_EVENT_WORKAREA_BOUNDS_CHANGED);
|
| + AdjustAllWindowsBoundsForWorkAreaChange(&event);
|
| + }
|
| + if (backdrop_delegate_)
|
| + backdrop_delegate_->OnDisplayWorkAreaInsetsChanged();
|
| +}
|
| +
|
| +//////////////////////////////////////////////////////////////////////////////
|
| // WorkspaceLayoutManager, ShellObserver implementation:
|
|
|
| void WorkspaceLayoutManager::OnFullscreenStateChanged(bool is_fullscreen,
|
|
|