| Index: ash/wm/workspace/snap_sizer.h
|
| diff --git a/ash/wm/workspace/snap_sizer.h b/ash/wm/workspace/snap_sizer.h
|
| index bd5f719ae482d1d78be1c20d70fd0895e3eb0703..b4cae25739b8dc244593816fa3af0a1a5e2629e5 100644
|
| --- a/ash/wm/workspace/snap_sizer.h
|
| +++ b/ash/wm/workspace/snap_sizer.h
|
| @@ -19,6 +19,8 @@ class Window;
|
| namespace ash {
|
| namespace internal {
|
|
|
| +class DockedWindowLayoutManager;
|
| +
|
| // SnapSizer is responsible for determining the resulting bounds of a window
|
| // that is being snapped to the left or right side of the screen.
|
| // The bounds used in this class are in the container's coordinates.
|
| @@ -31,6 +33,7 @@ class ASH_EXPORT SnapSizer {
|
|
|
| enum InputType {
|
| TOUCH_MAXIMIZE_BUTTON_INPUT,
|
| + WORKSPACE_DRAG_INPUT,
|
| OTHER_INPUT
|
| };
|
|
|
| @@ -63,6 +66,13 @@ class ASH_EXPORT SnapSizer {
|
| // For unit test purposes this function is not private.
|
| gfx::Rect GetTargetBoundsForSize(size_t size_index) const;
|
|
|
| + // Returns true when snapping sequence is at its last (docking) step.
|
| + bool ShouldDockWindow() const;
|
| +
|
| + // Returns true when a window can be docked. Windows cannot be docked at the
|
| + // edge used by the launcher shelf or the edge opposite from existing dock.
|
| + static bool CanDockWindow(aura::Window* window, SnapSizer::Edge edge);
|
| +
|
| private:
|
| // Calculates the amount to increment by. This returns one of -1, 0 or 1 and
|
| // is intended to by applied to |size_index_|. |x| is the current
|
| @@ -81,6 +91,10 @@ class ASH_EXPORT SnapSizer {
|
| // Returns true if the specified point is along the edge of the screen.
|
| bool AlongEdge(int x) const;
|
|
|
| + // Dock when a window is at its last step in snapping sequence, undock
|
| + // otherwise.
|
| + void UpdateDockedState();
|
| +
|
| // Window being snapped.
|
| aura::Window* window_;
|
|
|
| @@ -118,8 +132,12 @@ class ASH_EXPORT SnapSizer {
|
| const InputType input_type_;
|
|
|
| // A list of usable window widths for size. This gets created when the
|
| - // sizer gets created.
|
| - const std::vector<int> usable_width_;
|
| + // sizer gets created. Possible last 0 entry indicates that computing bounds
|
| + // needs to be delegated to DockedWindowLayoutManager.
|
| + std::vector<int> usable_width_;
|
| +
|
| + // Dock container window layout manager.
|
| + DockedWindowLayoutManager* dock_layout_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(SnapSizer);
|
| };
|
|
|