Chromium Code Reviews| Index: ash/monitor/multi_monitor_manager.cc |
| diff --git a/ash/monitor/multi_monitor_manager.cc b/ash/monitor/multi_monitor_manager.cc |
| index 874f22408018b9891e0c04315312e5c451b3781b..a5ebd3e70ebd513ad7f48c8fedc00341596eb544 100644 |
| --- a/ash/monitor/multi_monitor_manager.cc |
| +++ b/ash/monitor/multi_monitor_manager.cc |
| @@ -57,6 +57,12 @@ void MultiMonitorManager::CycleMonitor() { |
| manager->CycleMonitorImpl(); |
| } |
| +void MultiMonitorManager::ScaleMonitor() { |
| + MultiMonitorManager* manager = static_cast<MultiMonitorManager*>( |
| + aura::Env::GetInstance()->monitor_manager()); |
| + manager->ScaleMonitorImpl(); |
| +} |
| + |
| void MultiMonitorManager::OnNativeMonitorsChanged( |
| const std::vector<Monitor>& new_monitors) { |
| size_t min = std::min(monitors_.size(), new_monitors.size()); |
| @@ -204,6 +210,22 @@ void MultiMonitorManager::CycleMonitorImpl() { |
| } |
| } |
| +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 next = monitor.device_scale_factor() == 1.0f ? 2.0f : 1.0f; |
|
Daniel Erat
2012/05/07 19:44:05
nit: s/next/factor/
oshima
2012/05/08 00:17:24
Done.
|
| + monitor.SetScaleAndBounds( |
| + next, gfx::Rect(monitor.bounds_in_pixel().origin(), |
| + monitor.size().Scale(next))); |
| + new_monitors.push_back(monitor); |
| + } |
| + OnNativeMonitorsChanged(new_monitors); |
| + } |
| +} |
| + |
| gfx::Monitor& MultiMonitorManager::FindMonitorById(int id) { |
| for (Monitors::iterator iter = monitors_.begin(); |
| iter != monitors_.end(); ++iter) { |