Index: ui/aura_shell/workspace/workspace_manager.h |
diff --git a/ui/aura_shell/workspace/workspace_manager.h b/ui/aura_shell/workspace/workspace_manager.h |
index 925fea24925d445180e7eb5e2fb4385bb8f81b26..ace5ea69a9ddc22fc61a6cebc33cd0b1f7c30a04 100644 |
--- a/ui/aura_shell/workspace/workspace_manager.h |
+++ b/ui/aura_shell/workspace/workspace_manager.h |
@@ -44,6 +44,9 @@ class AURA_SHELL_EXPORT WorkspaceManager : public aura::DesktopObserver { |
// Returns the workspace that contanis the |window|. |
Workspace* FindBy(aura::Window* window) const; |
+ // Returns the window for swap operation based on the |location|. |
+ aura::Window* FindSwapWindowForLocation(const gfx::Point& location); |
+ |
// Sets the bounds of all workspaces. |
void LayoutWorkspaces(); |
@@ -54,6 +57,11 @@ class AURA_SHELL_EXPORT WorkspaceManager : public aura::DesktopObserver { |
void SetOverview(bool overview); |
bool is_overview() const { return is_overview_; } |
+ // Swaps the |drag| and |target|. If they're in the same workspace, |
+ // this simply swaps the layout location. If they're in the different |
+ // workspaces, these windows move between workspaces. |
+ void SwapWindow(aura::Window* drag, aura::Window* target); |
+ |
// Overridden from aura::DesktopObserver: |
virtual void OnDesktopResized(const gfx::Size& new_size) OVERRIDE; |
virtual void OnActiveWindowChanged(aura::Window* active) OVERRIDE; |
@@ -62,6 +70,7 @@ class AURA_SHELL_EXPORT WorkspaceManager : public aura::DesktopObserver { |
friend class Workspace; |
FRIEND_TEST_ALL_PREFIXES(WorkspaceManagerTest, Overview); |
FRIEND_TEST_ALL_PREFIXES(WorkspaceManagerTest, LayoutWorkspaces); |
+ FRIEND_TEST_ALL_PREFIXES(WorkspaceManagerTest, FindSwapWindow); |
void AddWorkspace(Workspace* workspace); |
void RemoveWorkspace(Workspace* workspace); |