Index: ash/monitor/multi_monitor_manager.cc |
diff --git a/ash/monitor/multi_monitor_manager.cc b/ash/monitor/multi_monitor_manager.cc |
index e7ace3732c958a1fef4ab6de1cb0105cf7de1ae0..1b97b026ad45a85538ef0fd46588e1fae1ef4fd1 100644 |
--- a/ash/monitor/multi_monitor_manager.cc |
+++ b/ash/monitor/multi_monitor_manager.cc |
@@ -15,7 +15,7 @@ |
#include "ui/aura/root_window.h" |
#include "ui/aura/root_window_host.h" |
#include "ui/aura/window_property.h" |
-#include "ui/gfx/monitor.h" |
+#include "ui/gfx/display.h" |
#include "ui/gfx/rect.h" |
DECLARE_WINDOW_PROPERTY_TYPE(int); |
@@ -23,15 +23,16 @@ DECLARE_WINDOW_PROPERTY_TYPE(int); |
namespace ash { |
namespace internal { |
namespace { |
-gfx::Monitor& GetInvalidMonitor() { |
- static gfx::Monitor* invalid_monitor = new gfx::Monitor(); |
- return *invalid_monitor; |
+ |
+gfx::Display& GetInvalidDisplay() { |
+ static gfx::Display* invalid_display = new gfx::Display(); |
+ return *invalid_display; |
} |
+ |
} // namespace |
using aura::RootWindow; |
using aura::Window; |
-using gfx::Monitor; |
using std::string; |
using std::vector; |
@@ -64,8 +65,8 @@ void MultiMonitorManager::CycleMonitor() { |
} |
void MultiMonitorManager::OnNativeMonitorsChanged( |
- const std::vector<Monitor>& new_monitors) { |
- size_t min = std::min(monitors_.size(), new_monitors.size()); |
+ const std::vector<gfx::Display>& new_displays) { |
+ size_t min = std::min(displays_.size(), new_displays.size()); |
// For m19, we only care about 1st monitor as primary, and |
// don't differentiate the rest of monitors as all secondary |
@@ -76,57 +77,57 @@ void MultiMonitorManager::OnNativeMonitorsChanged( |
// and keep a content on one monitor stays on the same monitor |
// when a monitor is added or removed. |
for (size_t i = 0; i < min; ++i) { |
- Monitor& current_monitor = monitors_[i]; |
- const Monitor& new_monitor = new_monitors[i]; |
- if (current_monitor.bounds_in_pixel() != new_monitor.bounds_in_pixel()) { |
- current_monitor.SetScaleAndBounds(new_monitor.device_scale_factor(), |
- new_monitor.bounds_in_pixel()); |
- NotifyBoundsChanged(current_monitor); |
+ gfx::Display& current_display = displays_[i]; |
+ const gfx::Display& new_display = new_displays[i]; |
+ if (current_display.bounds_in_pixel() != new_display.bounds_in_pixel()) { |
+ current_display.SetScaleAndBounds(new_display.device_scale_factor(), |
+ new_display.bounds_in_pixel()); |
+ NotifyBoundsChanged(current_display); |
} |
} |
- if (monitors_.size() < new_monitors.size()) { |
+ if (displays_.size() < new_displays.size()) { |
// New monitors added |
- for (size_t i = min; i < new_monitors.size(); ++i) { |
- const gfx::Monitor& new_monitor = new_monitors[i]; |
- monitors_.push_back(Monitor(new_monitor.id())); |
- gfx::Monitor& monitor = monitors_.back(); |
- monitor.SetScaleAndBounds(new_monitor.device_scale_factor(), |
- new_monitor.bounds_in_pixel()); |
- NotifyMonitorAdded(monitor); |
+ for (size_t i = min; i < new_displays.size(); ++i) { |
+ const gfx::Display& new_display = new_displays[i]; |
+ displays_.push_back(gfx::Display(new_display.id())); |
+ gfx::Display& display = displays_.back(); |
+ display.SetScaleAndBounds(new_display.device_scale_factor(), |
+ new_display.bounds_in_pixel()); |
+ NotifyDisplayAdded(display); |
} |
} else { |
// Monitors are removed. We keep the monitor for the primary |
// monitor (at index 0) because it needs the monitor information |
// even if it doesn't exit. |
- while (monitors_.size() > new_monitors.size() && monitors_.size() > 1) { |
- Monitors::reverse_iterator iter = monitors_.rbegin(); |
- NotifyMonitorRemoved(*iter); |
- monitors_.erase(iter.base() - 1); |
+ while (displays_.size() > new_displays.size() && displays_.size() > 1) { |
+ Displays::reverse_iterator iter = displays_.rbegin(); |
+ NotifyDisplayRemoved(*iter); |
+ displays_.erase(iter.base() - 1); |
} |
} |
} |
RootWindow* MultiMonitorManager::CreateRootWindowForMonitor( |
- const Monitor& monitor) { |
- RootWindow* root_window = new RootWindow(monitor.bounds_in_pixel()); |
+ const gfx::Display& display) { |
+ RootWindow* root_window = new RootWindow(display.bounds_in_pixel()); |
// No need to remove RootWindowObserver because |
// the MonitorManager object outlives RootWindow objects. |
root_window->AddRootWindowObserver(this); |
- root_window->SetProperty(kMonitorIdKey, monitor.id()); |
+ root_window->SetProperty(kMonitorIdKey, display.id()); |
root_window->Init(); |
return root_window; |
} |
-const Monitor& MultiMonitorManager::GetMonitorAt(size_t index) { |
- return index < monitors_.size() ? monitors_[index] : GetInvalidMonitor(); |
+const gfx::Display& MultiMonitorManager::GetMonitorAt(size_t index) { |
+ return index < displays_.size() ? displays_[index] : GetInvalidDisplay(); |
} |
size_t MultiMonitorManager::GetNumMonitors() const { |
- return monitors_.size(); |
+ return displays_.size(); |
} |
-const Monitor& MultiMonitorManager::GetMonitorNearestWindow( |
+const gfx::Display& MultiMonitorManager::GetMonitorNearestWindow( |
const Window* window) const { |
if (!window) { |
MultiMonitorManager* manager = const_cast<MultiMonitorManager*>(this); |
@@ -135,11 +136,11 @@ const Monitor& MultiMonitorManager::GetMonitorNearestWindow( |
const RootWindow* root = window->GetRootWindow(); |
MultiMonitorManager* that = const_cast<MultiMonitorManager*>(this); |
return root ? |
- that->FindMonitorById(root->GetProperty(kMonitorIdKey)) : |
- GetInvalidMonitor(); |
+ that->FindDisplayById(root->GetProperty(kMonitorIdKey)) : |
+ GetInvalidDisplay(); |
} |
-const Monitor& MultiMonitorManager::GetMonitorNearestPoint( |
+const gfx::Display& MultiMonitorManager::GetMonitorNearestPoint( |
const gfx::Point& point) const { |
// TODO(oshima): For m19, mouse is constrained within |
// the primary window. |
@@ -151,9 +152,9 @@ void MultiMonitorManager::OnRootWindowResized(const aura::RootWindow* root, |
const gfx::Size& old_size) { |
if (!use_fullscreen_host_window()) { |
int monitor_id = root->GetProperty(kMonitorIdKey); |
- Monitor& monitor = FindMonitorById(monitor_id); |
- monitor.SetSize(root->GetHostSize()); |
- NotifyBoundsChanged(monitor); |
+ gfx::Display& display = FindDisplayById(monitor_id); |
+ display.SetSize(root->GetHostSize()); |
+ NotifyBoundsChanged(display); |
} |
} |
@@ -161,10 +162,10 @@ bool MultiMonitorManager::UpdateWorkAreaOfMonitorNearestWindow( |
const aura::Window* window, |
const gfx::Insets& insets) { |
const RootWindow* root = window->GetRootWindow(); |
- Monitor& monitor = FindMonitorById(root->GetProperty(kMonitorIdKey)); |
- gfx::Rect old_work_area = monitor.work_area(); |
- monitor.UpdateWorkAreaFromInsets(insets); |
- return old_work_area != monitor.work_area(); |
+ gfx::Display& display = FindDisplayById(root->GetProperty(kMonitorIdKey)); |
+ gfx::Rect old_work_area = display.work_area(); |
+ display.UpdateWorkAreaFromInsets(insets); |
+ return old_work_area != display.work_area(); |
} |
void MultiMonitorManager::Init() { |
@@ -175,65 +176,65 @@ void MultiMonitorManager::Init() { |
base::SplitString(size_str, ',', &parts); |
for (vector<string>::const_iterator iter = parts.begin(); |
iter != parts.end(); ++iter) { |
- monitors_.push_back(CreateMonitorFromSpec(*iter)); |
+ displays_.push_back(CreateMonitorFromSpec(*iter)); |
} |
- if (monitors_.empty()) |
- monitors_.push_back(CreateMonitorFromSpec("" /* default */)); |
+ if (displays_.empty()) |
+ displays_.push_back(CreateMonitorFromSpec("" /* default */)); |
} |
void MultiMonitorManager::AddRemoveMonitorImpl() { |
- std::vector<Monitor> new_monitors; |
- if (monitors_.size() > 1) { |
- // Remove if there is more than one monitor. |
- int count = monitors_.size() - 1; |
- for (Monitors::const_iterator iter = monitors_.begin(); count-- > 0; ++iter) |
- new_monitors.push_back(*iter); |
+ std::vector<gfx::Display> new_displays; |
+ if (displays_.size() > 1) { |
+ // Remove if there is more than one display. |
+ int count = displays_.size() - 1; |
+ for (Displays::const_iterator iter = displays_.begin(); count-- > 0; ++iter) |
+ new_displays.push_back(*iter); |
} else { |
- // Add if there is only one monitor. |
- new_monitors.push_back(monitors_[0]); |
- new_monitors.push_back(CreateMonitorFromSpec("50+50-1280x768")); |
+ // Add if there is only one display. |
+ new_displays.push_back(displays_[0]); |
+ new_displays.push_back(CreateMonitorFromSpec("50+50-1280x768")); |
} |
- if (new_monitors.size()) |
- OnNativeMonitorsChanged(new_monitors); |
+ if (new_displays.size()) |
+ OnNativeMonitorsChanged(new_displays); |
} |
void MultiMonitorManager::CycleMonitorImpl() { |
- if (monitors_.size() > 1) { |
- std::vector<Monitor> new_monitors; |
- for (Monitors::const_iterator iter = monitors_.begin() + 1; |
- iter != monitors_.end(); ++iter) { |
- gfx::Monitor monitor = *iter; |
- new_monitors.push_back(monitor); |
+ if (displays_.size() > 1) { |
+ std::vector<gfx::Display> new_displays; |
+ for (Displays::const_iterator iter = displays_.begin() + 1; |
+ iter != displays_.end(); ++iter) { |
+ gfx::Display display = *iter; |
+ new_displays.push_back(display); |
} |
- new_monitors.push_back(monitors_.front()); |
- OnNativeMonitorsChanged(new_monitors); |
+ new_displays.push_back(displays_.front()); |
+ OnNativeMonitorsChanged(new_displays); |
} |
} |
void MultiMonitorManager::ScaleMonitorImpl() { |
- if (monitors_.size() > 0) { |
- std::vector<Monitor> new_monitors; |
- for (Monitors::const_iterator iter = monitors_.begin(); |
- iter != monitors_.end(); ++iter) { |
- gfx::Monitor monitor = *iter; |
- float factor = monitor.device_scale_factor() == 1.0f ? 2.0f : 1.0f; |
- monitor.SetScaleAndBounds( |
- factor, gfx::Rect(monitor.bounds_in_pixel().origin(), |
- monitor.size().Scale(factor))); |
- new_monitors.push_back(monitor); |
+ if (displays_.size() > 0) { |
+ std::vector<gfx::Display> new_displays; |
+ for (Displays::const_iterator iter = displays_.begin(); |
+ iter != displays_.end(); ++iter) { |
+ gfx::Display display = *iter; |
+ float factor = display.device_scale_factor() == 1.0f ? 2.0f : 1.0f; |
+ display.SetScaleAndBounds( |
+ factor, gfx::Rect(display.bounds_in_pixel().origin(), |
+ display.size().Scale(factor))); |
+ new_displays.push_back(display); |
} |
- OnNativeMonitorsChanged(new_monitors); |
+ OnNativeMonitorsChanged(new_displays); |
} |
} |
-gfx::Monitor& MultiMonitorManager::FindMonitorById(int id) { |
- for (Monitors::iterator iter = monitors_.begin(); |
- iter != monitors_.end(); ++iter) { |
+gfx::Display& MultiMonitorManager::FindDisplayById(int id) { |
+ for (Displays::iterator iter = displays_.begin(); |
+ iter != displays_.end(); ++iter) { |
if ((*iter).id() == id) |
return *iter; |
} |
- DLOG(FATAL) << "Could not find monitor by id:" << id; |
- return GetInvalidMonitor(); |
+ DLOG(FATAL) << "Could not find display by id:" << id; |
+ return GetInvalidDisplay(); |
} |
} // namespace internal |