| Index: ash/root_window_controller.h
|
| diff --git a/ash/root_window_controller.h b/ash/root_window_controller.h
|
| index 1fe197d31a1925b89201144bd34064834e60b111..eb59b13464859892c1cdd376122c975637719d92 100644
|
| --- a/ash/root_window_controller.h
|
| +++ b/ash/root_window_controller.h
|
| @@ -29,6 +29,7 @@ class KeyboardController;
|
|
|
| namespace ui {
|
| class EventHandler;
|
| +class WindowTreeHost;
|
| }
|
|
|
| namespace views {
|
| @@ -53,10 +54,14 @@ class SystemTray;
|
| class SystemWallpaperController;
|
| class TouchHudDebug;
|
| class TouchHudProjection;
|
| -class WmRootWindowControllerAura;
|
| +class WmRootWindowController;
|
| class WmShelf;
|
| class WorkspaceController;
|
|
|
| +namespace mus {
|
| +class RootWindowController;
|
| +}
|
| +
|
| // This class maintains the per root window state for ash. This class
|
| // owns the root window and other dependent objects that should be
|
| // deleted upon the deletion of the root window. This object is
|
| @@ -64,12 +69,15 @@ class WorkspaceController;
|
| // The RootWindowController for particular root window is stored in
|
| // its property (RootWindowSettings) and can be obtained using
|
| // |GetRootWindowController(aura::WindowEventDispatcher*)| function.
|
| -//
|
| -// NOTE: In classic ash there is one RootWindow per display, so every RootWindow
|
| -// has a RootWindowController. In mus/mash there is one RootWindow per top-level
|
| -// Widget, so not all RootWindows have a RootWindowController.
|
| class ASH_EXPORT RootWindowController : public ShellObserver {
|
| public:
|
| + // Enumerates the type of display. If there is only a single display then
|
| + // it is primary. In a multi-display environment one monitor is deemed the
|
| + // PRIMARY and all others SECONDARY.
|
| + enum class RootWindowType { PRIMARY, SECONDARY };
|
| +
|
| + ~RootWindowController() override;
|
| +
|
| // Creates and Initialize the RootWindowController for primary display.
|
| static void CreateForPrimaryDisplay(AshWindowTreeHost* host);
|
|
|
| @@ -82,8 +90,8 @@ class ASH_EXPORT RootWindowController : public ShellObserver {
|
| // Returns the RootWindowController of the target root window.
|
| static RootWindowController* ForTargetRootWindow();
|
|
|
| - ~RootWindowController() override;
|
| -
|
| + // TODO(sky): move these to a separate class or use AshWindowTreeHost in
|
| + // mash. http://crbug.com/671246.
|
| AshWindowTreeHost* ash_host() { return ash_host_.get(); }
|
| const AshWindowTreeHost* ash_host() const { return ash_host_.get(); }
|
|
|
| @@ -96,8 +104,8 @@ class ASH_EXPORT RootWindowController : public ShellObserver {
|
|
|
| WmShelf* wm_shelf() const { return wm_shelf_.get(); }
|
|
|
| - WmRootWindowControllerAura* wm_root_window_controller() {
|
| - return wm_root_window_controller_;
|
| + WmRootWindowController* wm_root_window_controller() {
|
| + return wm_root_window_controller_.get();
|
| }
|
|
|
| // Get touch HUDs associated with this root window controller.
|
| @@ -180,8 +188,16 @@ class ASH_EXPORT RootWindowController : public ShellObserver {
|
| void SetTouchAccessibilityAnchorPoint(const gfx::Point& anchor_point);
|
|
|
| private:
|
| - explicit RootWindowController(AshWindowTreeHost* host);
|
| - enum RootWindowType { PRIMARY, SECONDARY };
|
| + // TODO(sky): remove this. Temporary during ash-mus unification.
|
| + // http://crbug.com/671246.
|
| + friend class mus::RootWindowController;
|
| +
|
| + // Creates a new RootWindowController with the specified host. Only one of
|
| + // |ash_host| or |window_tree_host| should be specified. This takes ownership
|
| + // of the supplied arguments.
|
| + // TODO(sky): mash should create AshWindowTreeHost, http://crbug.com/671246.
|
| + RootWindowController(AshWindowTreeHost* ash_host,
|
| + aura::WindowTreeHost* window_tree_host);
|
|
|
| // Initializes the RootWindowController based on |root_window_type|.
|
| void Init(RootWindowType root_window_type);
|
| @@ -207,9 +223,11 @@ class ASH_EXPORT RootWindowController : public ShellObserver {
|
| void OnTouchHudProjectionToggled(bool enabled) override;
|
|
|
| std::unique_ptr<AshWindowTreeHost> ash_host_;
|
| + std::unique_ptr<aura::WindowTreeHost> mus_window_tree_host_;
|
| + // This comes from |ash_host_| or |mus_window_tree_host_|.
|
| + aura::WindowTreeHost* window_tree_host_;
|
|
|
| - // Owned by the root window.
|
| - WmRootWindowControllerAura* wm_root_window_controller_ = nullptr;
|
| + std::unique_ptr<WmRootWindowController> wm_root_window_controller_;
|
|
|
| std::unique_ptr<StackingController> stacking_controller_;
|
|
|
|
|