Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(93)

Unified Diff: ui/aura/root_window.cc

Issue 9689027: MonitorManager to manage multiple monitors. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: crash fix Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/aura/root_window.cc
diff --git a/ui/aura/root_window.cc b/ui/aura/root_window.cc
index cc0281965fc4ced31c26ec14f9479b02d9dc71e4..741bff11024d7d7611baf84afd2d187d3cb68616 100644
--- a/ui/aura/root_window.cc
+++ b/ui/aura/root_window.cc
@@ -16,12 +16,14 @@
#include "ui/aura/aura_switches.h"
#include "ui/aura/client/activation_client.h"
#include "ui/aura/env.h"
-#include "ui/aura/root_window_host.h"
-#include "ui/aura/root_window_observer.h"
#include "ui/aura/event.h"
#include "ui/aura/event_filter.h"
#include "ui/aura/focus_manager.h"
#include "ui/aura/gestures/gesture_recognizer.h"
+#include "ui/aura/monitor.h"
+#include "ui/aura/monitor_manager.h"
+#include "ui/aura/root_window_host.h"
+#include "ui/aura/root_window_observer.h"
#include "ui/aura/screen_aura.h"
#include "ui/aura/window.h"
#include "ui/aura/window_delegate.h"
@@ -91,7 +93,6 @@ RootWindow::RootWindow()
mouse_button_flags_(0),
last_cursor_(kCursorNull),
cursor_shown_(true),
- ALLOW_THIS_IN_INITIALIZER_LIST(screen_(new ScreenAura(this))),
capture_window_(NULL),
mouse_pressed_handler_(NULL),
mouse_moved_handler_(NULL),
@@ -104,7 +105,9 @@ RootWindow::RootWindow()
waiting_on_compositing_end_(false),
draw_on_compositing_end_(false) {
SetName("RootWindow");
- gfx::Screen::SetInstance(screen_);
+
+ gfx::Screen::SetInstance(new ScreenAura(this));
+
last_mouse_location_ = host_->QueryMouseLocation();
ui::Compositor::Initialize(false);
@@ -148,12 +151,14 @@ gfx::Size RootWindow::GetHostSize() const {
return rect.size();
}
-void RootWindow::SetScreenWorkAreaInsets(const gfx::Insets& insets) {
- if (screen_->work_area_insets() == insets)
+void RootWindow::SetMonitorWorkAreaInsets(const gfx::Insets& insets) {
+ Monitor* monitor = Env::GetInstance()->monitor_manager()->
+ GetMonitorNearestWindow(this);
+ if (monitor->work_area_insets() == insets)
return;
- screen_->set_work_area_insets(insets);
+ monitor->set_work_area_insets(insets);
FOR_EACH_OBSERVER(RootWindowObserver, observers_,
- OnScreenWorkAreaInsetsChanged());
+ OnMonitorWorkAreaInsetsChanged());
}
void RootWindow::SetCursor(gfx::NativeCursor cursor) {
@@ -788,6 +793,10 @@ void RootWindow::Init() {
Show();
compositor()->SetRootLayer(layer());
host_->SetRootWindow(this);
+ // MonitorManager needs to access the root's bounds, so initialize after
+ // layer is created.
+ aura::Env::GetInstance()->SetMonitorManager(
+ aura::CreateSingleMonitorManager(this));
}
gfx::Rect RootWindow::GetInitialHostWindowBounds() const {
« ui/aura/monitor.h ('K') | « ui/aura/root_window.h ('k') | ui/aura/root_window_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698