Chromium Code Reviews| Index: ash/common/wm/workspace/workspace_window_resizer.cc |
| diff --git a/ash/common/wm/workspace/workspace_window_resizer.cc b/ash/common/wm/workspace/workspace_window_resizer.cc |
| index bee0bb465bbc43dc61e7894ec244b06f7b367fbd..1f42dd64304ed2b06db3937ee9826c939afec58c 100644 |
| --- a/ash/common/wm/workspace/workspace_window_resizer.cc |
| +++ b/ash/common/wm/workspace/workspace_window_resizer.cc |
| @@ -9,11 +9,8 @@ |
| #include <utility> |
| #include <vector> |
| -#include "ash/common/ash_switches.h" |
| #include "ash/common/metrics/user_metrics_action.h" |
| #include "ash/common/wm/default_window_resizer.h" |
| -#include "ash/common/wm/dock/docked_window_layout_manager.h" |
| -#include "ash/common/wm/dock/docked_window_resizer.h" |
| #include "ash/common/wm/panels/panel_window_resizer.h" |
| #include "ash/common/wm/window_positioning_utils.h" |
| #include "ash/common/wm/window_state.h" |
| @@ -67,7 +64,7 @@ std::unique_ptr<WindowResizer> CreateWindowResizer( |
| // It may be possible to refactor and eliminate chaining. |
| std::unique_ptr<WindowResizer> window_resizer; |
| - if (!window_state->IsNormalOrSnapped() && !window_state->IsDocked()) |
| + if (!window_state->IsNormalOrSnapped()) |
| return std::unique_ptr<WindowResizer>(); |
| int bounds_change = |
| @@ -80,7 +77,6 @@ std::unique_ptr<WindowResizer> CreateWindowResizer( |
| window->GetParent() ? window->GetParent()->GetShellWindowId() : -1; |
| if (window->GetParent() && |
| (parent_shell_window_id == kShellWindowId_DefaultContainer || |
| - parent_shell_window_id == kShellWindowId_DockedContainer || |
| parent_shell_window_id == kShellWindowId_PanelContainer)) { |
| window_resizer.reset( |
| WorkspaceWindowResizer::Create(window_state, std::vector<WmWindow*>())); |
| @@ -89,15 +85,9 @@ std::unique_ptr<WindowResizer> CreateWindowResizer( |
| } |
| window_resizer = window->GetShell()->CreateDragWindowResizer( |
| std::move(window_resizer), window_state); |
| - if (window->GetType() == ui::wm::WINDOW_TYPE_PANEL) |
| + if (window->GetType() == ui::wm::WINDOW_TYPE_PANEL) { |
| window_resizer.reset( |
| PanelWindowResizer::Create(window_resizer.release(), window_state)); |
| - if (window_resizer && window->GetParent() && !window->GetTransientParent() && |
| - (parent_shell_window_id == kShellWindowId_DefaultContainer || |
| - parent_shell_window_id == kShellWindowId_DockedContainer || |
| - parent_shell_window_id == kShellWindowId_PanelContainer)) { |
| - window_resizer.reset( |
| - DockedWindowResizer::Create(window_resizer.release(), window_state)); |
| } |
| return window_resizer; |
| } |
| @@ -389,7 +379,6 @@ void WorkspaceWindowResizer::Drag(const gfx::Point& location_in_parent, |
| snap_type_ = SNAP_NONE; |
| snap_phantom_window_controller_.reset(); |
| edge_cycler_.reset(); |
| - SetDraggedWindowDocked(false); |
| } |
| } |
| @@ -415,18 +404,15 @@ void WorkspaceWindowResizer::CompleteDrag() { |
| details().restore_bounds.IsEmpty() ? initial_bounds |
| : details().restore_bounds); |
| } |
| - if (!dock_layout_->is_dragged_window_docked()) { |
| - // TODO(oshima): Add event source type to WMEvent and move |
| - // metrics recording inside WindowState::OnWMEvent. |
| - const wm::WMEvent event(snap_type_ == SNAP_LEFT |
| - ? wm::WM_EVENT_SNAP_LEFT |
| - : wm::WM_EVENT_SNAP_RIGHT); |
| - window_state()->OnWMEvent(&event); |
| - shell_->RecordUserMetricsAction(snap_type_ == SNAP_LEFT |
| - ? UMA_DRAG_MAXIMIZE_LEFT |
| - : UMA_DRAG_MAXIMIZE_RIGHT); |
| - snapped = true; |
| - } |
| + // TODO(oshima): Add event source type to WMEvent and move |
| + // metrics recording inside WindowState::OnWMEvent. |
| + const wm::WMEvent event(snap_type_ == SNAP_LEFT ? wm::WM_EVENT_SNAP_LEFT |
| + : wm::WM_EVENT_SNAP_RIGHT); |
| + window_state()->OnWMEvent(&event); |
| + shell_->RecordUserMetricsAction(snap_type_ == SNAP_LEFT |
| + ? UMA_DRAG_MAXIMIZE_LEFT |
| + : UMA_DRAG_MAXIMIZE_RIGHT); |
| + snapped = true; |
| } |
| if (!snapped) { |
| @@ -444,7 +430,7 @@ void WorkspaceWindowResizer::CompleteDrag() { |
| window_state()->SaveCurrentBoundsForRestore(); |
| window_state()->Restore(); |
| } |
| - } else if (!dock_layout_->is_dragged_window_docked()) { |
| + } else { |
| // The window was not snapped and is not snapped. This is a user |
| // resize/drag and so the current bounds should be maintained, clearing |
| // any prior restore bounds. When the window is docked the restore bound |
| @@ -510,8 +496,6 @@ WorkspaceWindowResizer::WorkspaceWindowResizer( |
| did_lock_cursor_ = true; |
| } |
| - dock_layout_ = DockedWindowLayoutManager::Get(GetTarget()); |
| - |
| // Only support attaching to the right/bottom. |
| DCHECK(attached_windows_.empty() || (details().window_component == HTRIGHT || |
| details().window_component == HTBOTTOM)); |
| @@ -875,28 +859,13 @@ void WorkspaceWindowResizer::UpdateSnapPhantomWindow(const gfx::Point& location, |
| if (snap_type_ == SNAP_NONE || snap_type_ != last_type) { |
| snap_phantom_window_controller_.reset(); |
| edge_cycler_.reset(); |
| - if (snap_type_ == SNAP_NONE) { |
| - SetDraggedWindowDocked(false); |
| + if (snap_type_ == SNAP_NONE) |
| return; |
| - } |
| } |
| DCHECK(snap_type_ == SNAP_LEFT || snap_type_ == SNAP_RIGHT); |
| - DockedAlignment desired_alignment = (snap_type_ == SNAP_LEFT) |
| - ? DOCKED_ALIGNMENT_LEFT |
| - : DOCKED_ALIGNMENT_RIGHT; |
| - const bool can_dock = |
| - ash::switches::DockedWindowsEnabled() && |
| - dock_layout_->CanDockWindow(GetTarget(), desired_alignment) && |
| - dock_layout_->GetAlignmentOfWindow(GetTarget()) != DOCKED_ALIGNMENT_NONE; |
| - if (!can_dock) { |
| - // If the window cannot be docked, undock the window. This may change the |
| - // workspace bounds and hence |snap_type_|. |
| - SetDraggedWindowDocked(false); |
| - snap_type_ = GetSnapType(location); |
| - } |
| const bool can_snap = snap_type_ != SNAP_NONE && window_state()->CanSnap(); |
| - if (!can_snap && !can_dock) { |
| + if (!can_snap) { |
| snap_type_ = SNAP_NONE; |
| snap_phantom_window_controller_.reset(); |
| edge_cycler_.reset(); |
| @@ -914,23 +883,10 @@ void WorkspaceWindowResizer::UpdateSnapPhantomWindow(const gfx::Point& location, |
| // Update phantom window with snapped or docked guide bounds. |
| // Windows that cannot be snapped or are less wide than kMaxDockWidth can get |
| // docked without going through a snapping sequence. |
| - gfx::Rect phantom_bounds; |
| - const bool should_dock = |
| - can_dock && (!can_snap || |
| - GetTarget()->GetBounds().width() <= |
| - DockedWindowLayoutManager::kMaxDockWidth || |
| - edge_cycler_->use_second_mode() || |
| - dock_layout_->is_dragged_window_docked()); |
| - if (should_dock) { |
| - SetDraggedWindowDocked(true); |
| - phantom_bounds = GetTarget()->GetParent()->ConvertRectFromScreen( |
| - dock_layout_->dragged_bounds()); |
| - } else { |
| - phantom_bounds = |
| - (snap_type_ == SNAP_LEFT) |
| - ? wm::GetDefaultLeftSnappedWindowBoundsInParent(GetTarget()) |
| - : wm::GetDefaultRightSnappedWindowBoundsInParent(GetTarget()); |
| - } |
| + gfx::Rect phantom_bounds = |
|
varkha
2017/02/28 00:59:02
Can be const.
afakhry
2017/03/09 22:28:27
Done.
|
| + (snap_type_ == SNAP_LEFT) |
| + ? wm::GetDefaultLeftSnappedWindowBoundsInParent(GetTarget()) |
| + : wm::GetDefaultRightSnappedWindowBoundsInParent(GetTarget()); |
| if (!snap_phantom_window_controller_) { |
| snap_phantom_window_controller_.reset( |
| @@ -993,20 +949,6 @@ WorkspaceWindowResizer::SnapType WorkspaceWindowResizer::GetSnapType( |
| return SNAP_NONE; |
| } |
| -void WorkspaceWindowResizer::SetDraggedWindowDocked(bool should_dock) { |
| - if (should_dock) { |
| - if (!dock_layout_->is_dragged_window_docked()) { |
| - window_state()->set_bounds_changed_by_user(false); |
| - dock_layout_->DockDraggedWindow(GetTarget()); |
| - } |
| - } else { |
| - if (dock_layout_->is_dragged_window_docked()) { |
| - dock_layout_->UndockDraggedWindow(); |
| - window_state()->set_bounds_changed_by_user(true); |
| - } |
| - } |
| -} |
| - |
| bool WorkspaceWindowResizer::AreBoundsValidSnappedBounds( |
| wm::WindowStateType snapped_type, |
| const gfx::Rect& bounds_in_parent) const { |