| Index: ui/aura/test/test_screen.cc
|
| diff --git a/ui/aura/test/test_screen.cc b/ui/aura/test/test_screen.cc
|
| index 4ffc2d855eada7ec162b6f32a1be29b79c5a2546..75b5bb9c5fdedd327cbb9486e11138d360765448 100644
|
| --- a/ui/aura/test/test_screen.cc
|
| +++ b/ui/aura/test/test_screen.cc
|
| @@ -16,6 +16,15 @@
|
|
|
| namespace aura {
|
|
|
| +namespace {
|
| +
|
| +bool IsRotationPortrait(gfx::Display::Rotation rotation) {
|
| + return rotation == gfx::Display::ROTATE_90 ||
|
| + rotation == gfx::Display::ROTATE_270;
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| // static
|
| TestScreen* TestScreen::Create(const gfx::Size& size) {
|
| const gfx::Size kDefaultSize(800, 600);
|
| @@ -47,8 +56,14 @@ void TestScreen::SetDeviceScaleFactor(float device_scale_factor) {
|
| }
|
|
|
| void TestScreen::SetDisplayRotation(gfx::Display::Rotation rotation) {
|
| + gfx::Rect bounds_in_pixel(display_.GetSizeInPixel());
|
| + gfx::Rect new_bounds(bounds_in_pixel);
|
| + if (IsRotationPortrait(rotation) != IsRotationPortrait(display_.rotation())) {
|
| + new_bounds.set_width(bounds_in_pixel.height());
|
| + new_bounds.set_height(bounds_in_pixel.width());
|
| + }
|
| display_.set_rotation(rotation);
|
| - // TODO(oshima|mukai): Update the display_ as well.
|
| + display_.SetScaleAndBounds(display_.device_scale_factor(), new_bounds);
|
| host_->SetRootTransform(GetRotationTransform() * GetUIScaleTransform());
|
| }
|
|
|
| @@ -63,21 +78,20 @@ void TestScreen::SetUIScale(float ui_scale) {
|
|
|
| gfx::Transform TestScreen::GetRotationTransform() const {
|
| gfx::Transform rotate;
|
| - float one_pixel = 1.0f / display_.device_scale_factor();
|
| switch (display_.rotation()) {
|
| case gfx::Display::ROTATE_0:
|
| break;
|
| case gfx::Display::ROTATE_90:
|
| - rotate.Translate(display_.bounds().height() - one_pixel, 0);
|
| + rotate.Translate(display_.bounds().height(), 0);
|
| rotate.Rotate(90);
|
| break;
|
| case gfx::Display::ROTATE_270:
|
| - rotate.Translate(0, display_.bounds().width() - one_pixel);
|
| + rotate.Translate(0, display_.bounds().width());
|
| rotate.Rotate(270);
|
| break;
|
| case gfx::Display::ROTATE_180:
|
| - rotate.Translate(display_.bounds().width() - one_pixel,
|
| - display_.bounds().height() - one_pixel);
|
| + rotate.Translate(display_.bounds().width(),
|
| + display_.bounds().height());
|
| rotate.Rotate(180);
|
| break;
|
| }
|
|
|