Commit 15f4874c authored by Xiyuan Xia's avatar Xiyuan Xia Committed by Commit Bot

ash: Fix unified desktop regression

Regressed in https://crrev.com/c/1825892 that uses a wrong transform
in PartialBoundsRootWindowTransformer.

Bug: 1016565
Change-Id: I56febc2515f2abe26853db6292064de27d3a4e81
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1873909
Commit-Queue: Xiyuan Xia <xiyuan@chromium.org>
Reviewed-by: default avatarAhmed Fakhry <afakhry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#708239}
parent d6fbcd08
......@@ -310,7 +310,7 @@ class PartialBoundsRootWindowTransformer : public RootWindowTransformer {
}
gfx::Insets GetHostInsets() const override { return gfx::Insets(); }
gfx::Transform GetInsetsAndScaleTransform() const override {
return gfx::Transform();
return transform_;
}
private:
......
......@@ -15,6 +15,7 @@
#include "ash/shell.h"
#include "ash/test/ash_test_base.h"
#include "ash/wm/cursor_manager_test_api.h"
#include "base/command_line.h"
#include "base/synchronization/waitable_event.h"
#include "base/test/scoped_feature_list.h"
#include "ui/aura/env.h"
......@@ -143,6 +144,24 @@ class RootWindowTransformersTest : public AshTestBase {
DISALLOW_COPY_AND_ASSIGN(RootWindowTransformersTest);
};
class UnfiedRootWindowTransformersTest : public RootWindowTransformersTest {
public:
UnfiedRootWindowTransformersTest() = default;
~UnfiedRootWindowTransformersTest() override = default;
// RootWindowTransformersTest:
void SetUp() override {
// kEnableUnifiedDesktop switch needs to be added before DisplayManager
// creation. Hence before calling SetUp.
base::CommandLine::ForCurrentProcess()->AppendSwitch(
switches::kEnableUnifiedDesktop);
RootWindowTransformersTest::SetUp();
}
DISALLOW_COPY_AND_ASSIGN(UnfiedRootWindowTransformersTest);
};
} // namespace
TEST_F(RootWindowTransformersTest, RotateAndMagnify) {
......@@ -569,4 +588,26 @@ TEST_F(RootWindowTransformersTest, ShouldSetWindowSizeDuringOpacityAnimation) {
EXPECT_EQ(root_window->GetTargetBounds(), gfx::Rect(0, 0, 600, 800));
}
TEST_F(UnfiedRootWindowTransformersTest, HostBoundsAndTransform) {
UpdateDisplay("800x600,800x600");
// Has only one logical root window.
EXPECT_EQ(1u, Shell::GetAllRootWindows().size());
MirrorWindowTestApi test_api;
std::vector<aura::WindowTreeHost*> hosts = test_api.GetHosts();
// Have 2 WindowTreeHosts, one per display.
ASSERT_EQ(2u, hosts.size());
EXPECT_EQ(gfx::Rect(0, 0, 800, 600), hosts[0]->window()->GetBoundsInScreen());
gfx::Point viewport_0_origin(0, 0);
hosts[0]->window()->transform().TransformPointReverse(&viewport_0_origin);
EXPECT_EQ(gfx::Point(0, 0), viewport_0_origin);
EXPECT_EQ(gfx::Rect(800, 0, 800, 600),
hosts[1]->window()->GetBoundsInScreen());
gfx::Point viewport_1_origin(0, 0);
hosts[1]->window()->transform().TransformPointReverse(&viewport_1_origin);
EXPECT_EQ(gfx::Point(800, 0), viewport_1_origin);
}
} // namespace ash
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment