| Index: ash/wm/window_mirror_view.h
|
| diff --git a/ash/wm/window_mirror_view.h b/ash/wm/window_mirror_view.h
|
| index 5fabd641ff0e00933d41df7b379b5705224f49f5..85b990cab04d156df8aa7ff422a2379461e419a4 100644
|
| --- a/ash/wm/window_mirror_view.h
|
| +++ b/ash/wm/window_mirror_view.h
|
| @@ -6,14 +6,12 @@
|
| #define ASH_WM_WINDOW_MIRROR_VIEW_H_
|
|
|
| #include <memory>
|
| +#include <vector>
|
|
|
| #include "ash/ash_export.h"
|
| #include "base/macros.h"
|
| #include "ui/views/view.h"
|
| -
|
| -namespace ui {
|
| -class LayerTreeOwner;
|
| -}
|
| +#include "ui/wm/core/window_util.h"
|
|
|
| namespace ash {
|
|
|
| @@ -21,8 +19,12 @@
|
|
|
| namespace wm {
|
|
|
| -// A view that mirrors the client area of a single window.
|
| -class WindowMirrorView : public views::View {
|
| +class ForwardingLayerDelegate;
|
| +
|
| +// A view that mirrors the client area of a single window. Layers are lifted
|
| +// from the underlying window (which gets new ones in their place). New paint
|
| +// calls, if any, are forwarded to the underlying window.
|
| +class WindowMirrorView : public views::View, public ::wm::LayerDelegateFactory {
|
| public:
|
| explicit WindowMirrorView(WmWindowAura* window);
|
| ~WindowMirrorView() override;
|
| @@ -32,6 +34,10 @@
|
| void Layout() override;
|
| bool GetNeedsNotificationWhenVisibleBoundsChange() const override;
|
| void OnVisibleBoundsChanged() override;
|
| +
|
| + // ::wm::LayerDelegateFactory:
|
| + ui::LayerDelegate* CreateDelegate(ui::Layer* new_layer,
|
| + ui::Layer* layer) override;
|
|
|
| private:
|
| void InitLayerOwner();
|
| @@ -51,6 +57,8 @@
|
| // the first time the view becomes visible.
|
| std::unique_ptr<ui::LayerTreeOwner> layer_owner_;
|
|
|
| + std::vector<std::unique_ptr<ForwardingLayerDelegate>> delegates_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(WindowMirrorView);
|
| };
|
|
|
|
|