diff options
author | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-14 00:57:22 +0000 |
---|---|---|
committer | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-14 00:57:22 +0000 |
commit | 3368133419f71d1a185aa401abd916da4b21dc84 (patch) | |
tree | bbaafdc77cc8f616a1bf04ad914082ba04f0b975 /ash | |
parent | 8ef10f310caa722660400ecb6a8c84623566aeb2 (diff) | |
download | chromium_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.cc | 4 | ||||
-rw-r--r-- | ash/monitor/multi_monitor_manager_unittest.cc | 15 |
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 |