Index: ash/shell.cc |
diff --git a/ash/shell.cc b/ash/shell.cc |
index bc3e476d1efa239f24d6691c8d7fb2e396e61e21..02f42120b5d117d948ac3c7b0f999d184f0ce8a1 100644 |
--- a/ash/shell.cc |
+++ b/ash/shell.cc |
@@ -57,12 +57,14 @@ |
#include "grit/ui_resources.h" |
#include "third_party/skia/include/core/SkBitmap.h" |
#include "ui/aura/client/aura_constants.h" |
+#include "ui/aura/env.h" |
#include "ui/aura/layout_manager.h" |
+#include "ui/aura/monitor.h" |
+#include "ui/aura/monitor_manager.h" |
#include "ui/aura/root_window.h" |
#include "ui/aura/window.h" |
#include "ui/gfx/compositor/layer.h" |
#include "ui/gfx/compositor/layer_animator.h" |
-#include "ui/gfx/screen.h" |
#include "ui/gfx/size.h" |
#include "ui/views/widget/native_widget_aura.h" |
#include "ui/views/widget/widget.h" |
@@ -328,6 +330,8 @@ Shell::Shell(ShellDelegate* delegate) |
desktop_background_mode_(BACKGROUND_IMAGE), |
root_window_layout_(NULL), |
status_widget_(NULL) { |
+ aura::Env::GetInstance()->SetMonitorManager( |
+ aura::CreateSingleMonitorManager(root_window_.get())); |
gfx::Screen::SetInstance(screen_); |
} |
@@ -612,12 +616,15 @@ void Shell::RotateFocus(Direction direction) { |
internal::FocusCycler::BACKWARD); |
} |
-void Shell::SetScreenWorkAreaInsets(const gfx::Insets& insets) { |
- if (screen_->work_area_insets() == insets) |
+void Shell::SetMonitorWorkAreaInsets(Window* contains, |
+ const gfx::Insets& insets) { |
+ aura::Monitor* monitor = aura::Env::GetInstance()->monitor_manager()-> |
+ GetMonitorNearestWindow(contains); |
+ if (monitor->work_area_insets() == insets) |
return; |
- screen_->set_work_area_insets(insets); |
+ monitor->set_work_area_insets(insets); |
FOR_EACH_OBSERVER(ShellObserver, observers_, |
- OnScreenWorkAreaInsetsChanged()); |
+ OnMonitorWorkAreaInsetsChanged()); |
} |
void Shell::AddShellObserver(ShellObserver* observer) { |