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

Unified Diff: ash/monitor/multi_monitor_manager.cc

Issue 10221028: Move DIP translation from ui/aura to ui/compositor (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 7 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: 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) {

Powered by Google App Engine
This is Rietveld 408576698