| Index: ash/display/root_window_transformers.cc
|
| diff --git a/ash/display/root_window_transformers.cc b/ash/display/root_window_transformers.cc
|
| index 8a028b37a1061f9ac21f2dbc7396288cce216d88..6a9eea345348b34e6885ffda339be72320cba41d 100644
|
| --- a/ash/display/root_window_transformers.cc
|
| +++ b/ash/display/root_window_transformers.cc
|
| @@ -275,6 +275,37 @@ class MirrorRootWindowTransformer : public RootWindowTransformer {
|
| DISALLOW_COPY_AND_ASSIGN(MirrorRootWindowTransformer);
|
| };
|
|
|
| +class PartialBoundsRootWindowTransformer : public RootWindowTransformer {
|
| + public:
|
| + PartialBoundsRootWindowTransformer(const gfx::Rect& screen_bounds,
|
| + const gfx::Display& display) {
|
| + gfx::SizeF root_size(display.bounds().size());
|
| + root_size.Scale(display.device_scale_factor());
|
| + root_bounds_ = gfx::Rect(gfx::ToFlooredSize(root_size));
|
| +
|
| + transform_.Translate(-SkIntToMScalar(display.bounds().x()),
|
| + -SkIntToMScalar(display.bounds().y()));
|
| + }
|
| +
|
| + // RootWindowTransformer:
|
| + gfx::Transform GetTransform() const override { return transform_; }
|
| + gfx::Transform GetInverseTransform() const override {
|
| + gfx::Transform invert;
|
| + CHECK(transform_.GetInverse(&invert));
|
| + return invert;
|
| + }
|
| + gfx::Rect GetRootWindowBounds(const gfx::Size& host_size) const override {
|
| + return root_bounds_;
|
| + }
|
| + gfx::Insets GetHostInsets() const override { return gfx::Insets(); }
|
| +
|
| + private:
|
| + gfx::Transform transform_;
|
| + gfx::Rect root_bounds_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(PartialBoundsRootWindowTransformer);
|
| +};
|
| +
|
| } // namespace
|
|
|
| RootWindowTransformer* CreateRootWindowTransformerForDisplay(
|
| @@ -290,4 +321,10 @@ RootWindowTransformer* CreateRootWindowTransformerForMirroredDisplay(
|
| mirror_display_info);
|
| }
|
|
|
| +RootWindowTransformer* CreateRootWindowTransformerForUnifiedDesktop(
|
| + const gfx::Rect& screen_bounds,
|
| + const gfx::Display& display) {
|
| + return new PartialBoundsRootWindowTransformer(screen_bounds, display);
|
| +}
|
| +
|
| } // namespace ash
|
|
|