summaryrefslogtreecommitdiffstats
path: root/ash
diff options
context:
space:
mode:
authoroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-14 00:57:22 +0000
committeroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-14 00:57:22 +0000
commit3368133419f71d1a185aa401abd916da4b21dc84 (patch)
treebbaafdc77cc8f616a1bf04ad914082ba04f0b975 /ash
parent8ef10f310caa722660400ecb6a8c84623566aeb2 (diff)
downloadchromium_src-3368133419f71d1a185aa401abd916da4b21dc84.zip
chromium_src-3368133419f71d1a185aa401abd916da4b21dc84.tar.gz
chromium_src-3368133419f71d1a185aa401abd916da4b21dc84.tar.bz2
Update display info and notify the root window even when the only device scale has changed
R=sky@chromium.org BUG=132566 TEST=added new test case. Review URL: https://chromiumcodereview.appspot.com/10534151 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@142047 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash')
-rw-r--r--ash/monitor/multi_monitor_manager.cc4
-rw-r--r--ash/monitor/multi_monitor_manager_unittest.cc15
2 files changed, 18 insertions, 1 deletions
diff --git a/ash/monitor/multi_monitor_manager.cc b/ash/monitor/multi_monitor_manager.cc
index 1b97b02..8538eb7 100644
--- a/ash/monitor/multi_monitor_manager.cc
+++ b/ash/monitor/multi_monitor_manager.cc
@@ -79,7 +79,9 @@ void MultiMonitorManager::OnNativeMonitorsChanged(
for (size_t i = 0; i < min; ++i) {
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()) {
+ if (current_display.bounds_in_pixel() != new_display.bounds_in_pixel() ||
+ current_display.device_scale_factor() !=
+ new_display.device_scale_factor()) {
current_display.SetScaleAndBounds(new_display.device_scale_factor(),
new_display.bounds_in_pixel());
NotifyBoundsChanged(current_display);
diff --git a/ash/monitor/multi_monitor_manager_unittest.cc b/ash/monitor/multi_monitor_manager_unittest.cc
index 7850f77..ac44dc8 100644
--- a/ash/monitor/multi_monitor_manager_unittest.cc
+++ b/ash/monitor/multi_monitor_manager_unittest.cc
@@ -231,5 +231,20 @@ TEST_F(MultiMonitorManagerTest, EmulatorTest) {
reset();
}
+TEST_F(MultiMonitorManagerTest, TestDeviceScaleOnlyChange) {
+ aura::MonitorManager::set_use_fullscreen_host_window(true);
+ UpdateMonitor("0+0-1000x600");
+ EXPECT_EQ(1,
+ Shell::GetPrimaryRootWindow()->compositor()->device_scale_factor());
+ EXPECT_EQ("1000x600",
+ Shell::GetPrimaryRootWindow()->bounds().size().ToString());
+ UpdateMonitor("0+0-1000x600*2");
+ EXPECT_EQ(2,
+ Shell::GetPrimaryRootWindow()->compositor()->device_scale_factor());
+ EXPECT_EQ("500x300",
+ Shell::GetPrimaryRootWindow()->bounds().size().ToString());
+ aura::MonitorManager::set_use_fullscreen_host_window(false);
+}
+
} // namespace test
} // namespace ash