| 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..e7ace3732c958a1fef4ab6de1cb0105cf7de1ae0 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::ToggleMonitorScale() {
|
| + 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 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);
|
| + }
|
| + OnNativeMonitorsChanged(new_monitors);
|
| + }
|
| +}
|
| +
|
| gfx::Monitor& MultiMonitorManager::FindMonitorById(int id) {
|
| for (Monitors::iterator iter = monitors_.begin();
|
| iter != monitors_.end(); ++iter) {
|
|
|