Index: ash/wm/workspace/workspace_manager.cc |
diff --git a/ash/wm/workspace/workspace_manager.cc b/ash/wm/workspace/workspace_manager.cc |
index 1aaa8d0008cf1133752b00fb3e192045cd943a45..a9093fb81d538b620b9a9185688de25f4e0ca889 100644 |
--- a/ash/wm/workspace/workspace_manager.cc |
+++ b/ash/wm/workspace/workspace_manager.cc |
@@ -18,8 +18,11 @@ |
#include "base/auto_reset.h" |
#include "base/logging.h" |
#include "base/stl_util.h" |
+#include "ui/aura/env.h" |
#include "ui/aura/client/aura_constants.h" |
#include "ui/aura/root_window.h" |
+#include "ui/aura/monitor.h" |
+#include "ui/aura/monitor_manager.h" |
#include "ui/aura/window.h" |
#include "ui/base/ui_base_types.h" |
#include "ui/gfx/compositor/layer.h" |
@@ -157,7 +160,7 @@ void WorkspaceManager::SetWorkspaceSize(const gfx::Size& workspace_size) { |
SetWorkspaceBounds(); |
} |
-void WorkspaceManager::OnScreenWorkAreaInsetsChanged() { |
+void WorkspaceManager::OnMonitorWorkAreaInsetsChanged() { |
SetWorkspaceBounds(); |
} |
@@ -286,9 +289,13 @@ void WorkspaceManager::SetActiveWorkspace(Workspace* workspace) { |
is_overview_ = false; |
} |
-gfx::Rect WorkspaceManager::GetWorkAreaBounds() { |
+gfx::Rect WorkspaceManager::GetWorkAreaBounds() const { |
gfx::Rect bounds(workspace_size_); |
- bounds.Inset(Shell::GetInstance()->screen()->work_area_insets()); |
+ const aura::MonitorManager* monitor_manager = |
+ aura::Env::GetInstance()->monitor_manager(); |
+ const aura::Monitor* monitor = |
+ monitor_manager->GetMonitorNearestWindow(contents_view_); |
+ bounds.Inset(monitor->work_area_insets()); |
return bounds; |
} |