| Index: ash/common/wm/workspace/workspace_layout_manager.h
|
| diff --git a/ash/common/wm/workspace/workspace_layout_manager.h b/ash/common/wm/workspace/workspace_layout_manager.h
|
| index 0666535c0835e417cb7684eda392426da55d03dc..e1fcd8b1973b4fb3c4364f74294772e17b20c516 100644
|
| --- a/ash/common/wm/workspace/workspace_layout_manager.h
|
| +++ b/ash/common/wm/workspace/workspace_layout_manager.h
|
| @@ -9,6 +9,7 @@
|
| #include <set>
|
|
|
| #include "ash/ash_export.h"
|
| +#include "ash/common/shell_observer.h"
|
| #include "ash/common/wm/window_state_observer.h"
|
| #include "ash/common/wm/wm_types.h"
|
| #include "ash/common/wm_activation_observer.h"
|
| @@ -36,6 +37,7 @@ class ASH_EXPORT WorkspaceLayoutManager
|
| public WmActivationObserver,
|
| public keyboard::KeyboardControllerObserver,
|
| public WmRootWindowControllerObserver,
|
| + public ShellObserver,
|
| public wm::WindowStateObserver {
|
| public:
|
| WorkspaceLayoutManager(
|
| @@ -88,6 +90,15 @@ class ASH_EXPORT WorkspaceLayoutManager
|
| void OnPostWindowStateTypeChange(wm::WindowState* window_state,
|
| wm::WindowStateType old_type) override;
|
|
|
| + // ShellObserver overrides:
|
| + void OnFullscreenStateChanged(bool is_fullscreen, WmWindow* root) override {
|
| + // Do nothing. Fullscreen state change is observed by the
|
| + // WmRootWindowControllerObserver::OnFullscreenStateChanged().
|
| + // Because the name is conflicting, some compiler warns because this is
|
| + // hidden. To avoid it, we define it here, with empty body.
|
| + }
|
| + void OnPinnedStateChanged(WmWindow* pinned_window) override;
|
| +
|
| private:
|
| typedef std::set<WmWindow*> WindowSet;
|
|
|
| @@ -107,17 +118,9 @@ class ASH_EXPORT WorkspaceLayoutManager
|
| // has changed.
|
| void UpdateFullscreenState();
|
|
|
| - // Updates the bounds of the window for a stte type change from
|
| - // |old_show_type|.
|
| - void UpdateBoundsFromStateType(wm::WindowState* window_state,
|
| - wm::WindowStateType old_state_type);
|
| -
|
| - // If |window_state| is maximized or fullscreen the bounds of the
|
| - // window are set and true is returned. Does nothing otherwise.
|
| - bool SetMaximizedOrFullscreenBounds(wm::WindowState* window_state);
|
| -
|
| - // Animates the window bounds to |bounds|.
|
| - void SetChildBoundsAnimated(WmWindow* child, const gfx::Rect& bounds);
|
| + // Updates the always-on-top state for windows managed by this layout
|
| + // manager.
|
| + void UpdateAlwaysOnTop(WmWindow* window_on_top);
|
|
|
| WmWindow* window_;
|
| WmWindow* root_window_;
|
| @@ -135,6 +138,14 @@ class ASH_EXPORT WorkspaceLayoutManager
|
| // True if this workspace is currently in fullscreen mode.
|
| bool is_fullscreen_;
|
|
|
| + // True if in pinned mode.
|
| + // Currently this state is managed in this class, because this handles
|
| + // OnPinnedStateChanged event, while it is not guaranteed
|
| + // WmShell::Get()->IsPinned() returns the expected value, because of the
|
| + // callback invocation order.
|
| + // TODO(hidehiko): Remove this variable, and use IsPinned() instead.
|
| + bool is_pinned_;
|
| +
|
| // A window which covers the full container and which gets inserted behind the
|
| // topmost visible window.
|
| std::unique_ptr<WorkspaceLayoutManagerBackdropDelegate> backdrop_delegate_;
|
|
|