| Index: components/mus/ws/display.h
|
| diff --git a/components/mus/ws/display.h b/components/mus/ws/display.h
|
| deleted file mode 100644
|
| index 419b1909c03e9b4d058b86a0f1617ccf8bef15c2..0000000000000000000000000000000000000000
|
| --- a/components/mus/ws/display.h
|
| +++ /dev/null
|
| @@ -1,224 +0,0 @@
|
| -// Copyright 2015 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef COMPONENTS_MUS_WS_DISPLAY_H_
|
| -#define COMPONENTS_MUS_WS_DISPLAY_H_
|
| -
|
| -#include <stdint.h>
|
| -
|
| -#include <map>
|
| -#include <memory>
|
| -#include <queue>
|
| -#include <set>
|
| -
|
| -#include "base/macros.h"
|
| -#include "base/memory/weak_ptr.h"
|
| -#include "components/mus/common/types.h"
|
| -#include "components/mus/public/interfaces/window_manager_constants.mojom.h"
|
| -#include "components/mus/public/interfaces/window_tree_host.mojom.h"
|
| -#include "components/mus/ws/focus_controller_delegate.h"
|
| -#include "components/mus/ws/focus_controller_observer.h"
|
| -#include "components/mus/ws/platform_display.h"
|
| -#include "components/mus/ws/server_window.h"
|
| -#include "components/mus/ws/server_window_observer.h"
|
| -#include "components/mus/ws/server_window_tracker.h"
|
| -#include "components/mus/ws/user_id_tracker_observer.h"
|
| -#include "components/mus/ws/window_manager_window_tree_factory_set_observer.h"
|
| -
|
| -namespace mus {
|
| -namespace ws {
|
| -
|
| -class DisplayBinding;
|
| -class DisplayManager;
|
| -class FocusController;
|
| -struct PlatformDisplayInitParams;
|
| -class WindowManagerDisplayRoot;
|
| -class WindowServer;
|
| -class WindowTree;
|
| -
|
| -namespace test {
|
| -class DisplayTestApi;
|
| -}
|
| -
|
| -// Displays manages the state associated with a single display. Display has a
|
| -// single root window whose children are the roots for a per-user
|
| -// WindowManager. Display is configured in two distinct
|
| -// ways:
|
| -// . with a DisplayBinding. In this mode there is only ever one WindowManager
|
| -// for the display, which comes from the client that created the
|
| -// Display.
|
| -// . without a DisplayBinding. In this mode a WindowManager is automatically
|
| -// created per user.
|
| -class Display : public PlatformDisplayDelegate,
|
| - public mojom::WindowTreeHost,
|
| - public FocusControllerObserver,
|
| - public FocusControllerDelegate,
|
| - public ServerWindowObserver,
|
| - public UserIdTrackerObserver,
|
| - public WindowManagerWindowTreeFactorySetObserver {
|
| - public:
|
| - Display(WindowServer* window_server,
|
| - const PlatformDisplayInitParams& platform_display_init_params);
|
| - ~Display() override;
|
| -
|
| - // Initializes state that depends on the existence of a Display.
|
| - void Init(std::unique_ptr<DisplayBinding> binding);
|
| -
|
| - uint32_t id() const { return id_; }
|
| -
|
| - DisplayManager* display_manager();
|
| - const DisplayManager* display_manager() const;
|
| -
|
| - PlatformDisplay* platform_display() { return platform_display_.get(); }
|
| -
|
| - // Returns a mojom::Display for the specified display. WindowManager specific
|
| - // values are not set.
|
| - mojom::DisplayPtr ToMojomDisplay() const;
|
| -
|
| - // Schedules a paint for the specified region in the coordinates of |window|.
|
| - void SchedulePaint(const ServerWindow* window, const gfx::Rect& bounds);
|
| -
|
| - // Schedules destruction of surfaces in |window|. If a frame has been
|
| - // scheduled but not drawn surface destruction is delayed until the frame is
|
| - // drawn, otherwise destruction is immediate.
|
| - void ScheduleSurfaceDestruction(ServerWindow* window);
|
| -
|
| - mojom::Rotation GetRotation() const;
|
| - gfx::Size GetSize() const;
|
| -
|
| - // Returns the id for the corresponding id.
|
| - int64_t GetPlatformDisplayId() const;
|
| -
|
| - WindowServer* window_server() { return window_server_; }
|
| -
|
| - // Returns the root of the Display. The root's children are the roots
|
| - // of the corresponding WindowManagers.
|
| - ServerWindow* root_window() { return root_.get(); }
|
| - const ServerWindow* root_window() const { return root_.get(); }
|
| -
|
| - // Returns the ServerWindow whose id is |id|. This does not do a search over
|
| - // all windows, rather just the display and window manager root windows.
|
| - //
|
| - // In general you shouldn't use this, rather use WindowServer::GetWindow(),
|
| - // which calls this as necessary.
|
| - ServerWindow* GetRootWithId(const WindowId& id);
|
| -
|
| - WindowManagerDisplayRoot* GetWindowManagerDisplayRootWithRoot(
|
| - const ServerWindow* window);
|
| - WindowManagerDisplayRoot* GetWindowManagerDisplayRootForUser(
|
| - const UserId& user_id) {
|
| - return const_cast<WindowManagerDisplayRoot*>(
|
| - const_cast<const Display*>(this)->GetWindowManagerDisplayRootForUser(
|
| - user_id));
|
| - }
|
| - const WindowManagerDisplayRoot* GetWindowManagerDisplayRootForUser(
|
| - const UserId& user_id) const;
|
| - WindowManagerDisplayRoot* GetActiveWindowManagerDisplayRoot() {
|
| - return const_cast<WindowManagerDisplayRoot*>(
|
| - const_cast<const Display*>(this)->GetActiveWindowManagerDisplayRoot());
|
| - }
|
| - const WindowManagerDisplayRoot* GetActiveWindowManagerDisplayRoot() const;
|
| - size_t num_window_manger_states() const {
|
| - return window_manager_display_root_map_.size();
|
| - }
|
| -
|
| - // TODO(sky): this should only be called by WindowServer, move to interface
|
| - // used by WindowServer.
|
| - // See description of WindowServer::SetFocusedWindow() for details on return
|
| - // value.
|
| - bool SetFocusedWindow(ServerWindow* window);
|
| - // NOTE: this returns the focused window only if the focused window is in this
|
| - // display. If this returns null focus may be in another display.
|
| - ServerWindow* GetFocusedWindow();
|
| -
|
| - void ActivateNextWindow();
|
| -
|
| - void AddActivationParent(ServerWindow* window);
|
| - void RemoveActivationParent(ServerWindow* window);
|
| -
|
| - void UpdateTextInputState(ServerWindow* window,
|
| - const ui::TextInputState& state);
|
| - void SetImeVisibility(ServerWindow* window, bool visible);
|
| -
|
| - // Called just before |tree| is destroyed.
|
| - void OnWillDestroyTree(WindowTree* tree);
|
| -
|
| - void UpdateNativeCursor(int32_t cursor_id);
|
| -
|
| - // mojom::WindowTreeHost:
|
| - void SetSize(const gfx::Size& size) override;
|
| - void SetTitle(const mojo::String& title) override;
|
| -
|
| - private:
|
| - friend class test::DisplayTestApi;
|
| -
|
| - using WindowManagerDisplayRootMap =
|
| - std::map<UserId, std::unique_ptr<WindowManagerDisplayRoot>>;
|
| -
|
| - // Inits the necessary state once the display is ready.
|
| - void InitWindowManagerDisplayRootsIfNecessary();
|
| -
|
| - // Creates the set of WindowManagerDisplayRoots from the
|
| - // WindowManagerWindowTreeFactorySet.
|
| - void CreateWindowManagerDisplayRootsFromFactories();
|
| -
|
| - void CreateWindowManagerDisplayRootFromFactory(
|
| - WindowManagerWindowTreeFactory* factory);
|
| -
|
| - // PlatformDisplayDelegate:
|
| - ServerWindow* GetRootWindow() override;
|
| - void OnEvent(const ui::Event& event) override;
|
| - void OnNativeCaptureLost() override;
|
| - void OnDisplayClosed() override;
|
| - void OnViewportMetricsChanged(const ViewportMetrics& old_metrics,
|
| - const ViewportMetrics& new_metrics) override;
|
| - void OnCompositorFrameDrawn() override;
|
| -
|
| - // FocusControllerDelegate:
|
| - bool CanHaveActiveChildren(ServerWindow* window) const override;
|
| -
|
| - // FocusControllerObserver:
|
| - void OnActivationChanged(ServerWindow* old_active_window,
|
| - ServerWindow* new_active_window) override;
|
| - void OnFocusChanged(FocusControllerChangeSource change_source,
|
| - ServerWindow* old_focused_window,
|
| - ServerWindow* new_focused_window) override;
|
| -
|
| - // ServerWindowObserver:
|
| - void OnWindowDestroyed(ServerWindow* window) override;
|
| -
|
| - // UserIdTrackerObserver:
|
| - void OnUserIdRemoved(const UserId& id) override;
|
| -
|
| - // WindowManagerWindowTreeFactorySetObserver:
|
| - void OnWindowManagerWindowTreeFactoryReady(
|
| - WindowManagerWindowTreeFactory* factory) override;
|
| -
|
| - const uint32_t id_;
|
| - std::unique_ptr<DisplayBinding> binding_;
|
| - // Set once Init() has been called.
|
| - bool init_called_ = false;
|
| - WindowServer* const window_server_;
|
| - std::unique_ptr<ServerWindow> root_;
|
| - std::unique_ptr<PlatformDisplay> platform_display_;
|
| - std::unique_ptr<FocusController> focus_controller_;
|
| -
|
| - // The last cursor set. Used to track whether we need to change the cursor.
|
| - int32_t last_cursor_;
|
| -
|
| - ServerWindowTracker activation_parents_;
|
| -
|
| - // Set of windows with surfaces that need to be destroyed once the frame
|
| - // draws.
|
| - std::set<ServerWindow*> windows_needing_frame_destruction_;
|
| -
|
| - WindowManagerDisplayRootMap window_manager_display_root_map_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(Display);
|
| -};
|
| -
|
| -} // namespace ws
|
| -} // namespace mus
|
| -
|
| -#endif // COMPONENTS_MUS_WS_DISPLAY_H_
|
|
|