diff options
author | spang@chromium.org <spang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-20 18:58:38 +0000 |
---|---|---|
committer | spang@chromium.org <spang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-20 18:58:38 +0000 |
commit | 5af19380d53cdb163afe92a0006eb02f040b970f (patch) | |
tree | 2a2b85b0bb5fd4a6ab502c06a3d0411029e68747 /ui/aura/test | |
parent | 183e28d67e650ad4c019daeacd3eaf4ccb23f103 (diff) | |
download | chromium_src-5af19380d53cdb163afe92a0006eb02f040b970f.zip chromium_src-5af19380d53cdb163afe92a0006eb02f040b970f.tar.gz chromium_src-5af19380d53cdb163afe92a0006eb02f040b970f.tar.bz2 |
aura: Fix unit conversion in test_screen
There's a couple of unit issues here that cause really strange behavior in
highdpi mode:
- The root window is created using scaled pixels, but CreateParams is
actually defined to contain unscaled pixels. So the root window
dimensions are always off by a factor of 2 in highdpi mode.
- The screen resizes the display using the wrong units. The screen bounds
are in scaled pixels, but Display::SetSize takes pixels.
BUG=335713
TEST=ozone content_shell with --force-device-scale-factor=2
Review URL: https://codereview.chromium.org/142123002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245933 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/aura/test')
-rw-r--r-- | ui/aura/test/test_screen.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/ui/aura/test/test_screen.cc b/ui/aura/test/test_screen.cc index 484a478..5eab457 100644 --- a/ui/aura/test/test_screen.cc +++ b/ui/aura/test/test_screen.cc @@ -9,6 +9,7 @@ #include "ui/aura/root_window.h" #include "ui/aura/window.h" #include "ui/aura/window_tree_host.h" +#include "ui/gfx/geometry/size_conversions.h" #include "ui/gfx/native_widget_types.h" #include "ui/gfx/rect_conversions.h" #include "ui/gfx/screen.h" @@ -32,7 +33,8 @@ TestScreen::~TestScreen() { RootWindow* TestScreen::CreateRootWindowForPrimaryDisplay() { DCHECK(!root_window_); - root_window_ = new RootWindow(RootWindow::CreateParams(display_.bounds())); + root_window_ = new RootWindow( + RootWindow::CreateParams(gfx::Rect(display_.GetSizeInPixel()))); root_window_->window()->AddObserver(this); root_window_->Init(); return root_window_; @@ -98,7 +100,8 @@ bool TestScreen::IsDIPEnabled() { void TestScreen::OnWindowBoundsChanged( Window* window, const gfx::Rect& old_bounds, const gfx::Rect& new_bounds) { DCHECK_EQ(root_window_->window(), window); - display_.SetSize(new_bounds.size()); + display_.SetSize(gfx::ToFlooredSize( + gfx::ScaleSize(new_bounds.size(), display_.device_scale_factor()))); } void TestScreen::OnWindowDestroying(Window* window) { |