Commit 8fedb2ec authored by Avery Musbach's avatar Avery Musbach Committed by Commit Bot

overview: Simplify RearrangeDuringDrag and its usage

Consistent with UpdateDropTargetBackgroundVisibility,
RearrangeDuringDrag shall have a dragged item parameter rather than a
dragged window parameter. OverviewWindowDragController has the item
which is what RearrangeDuringDrag really needs in the first place,
meaning it is unnecessary that OverviewWindowDragController gets the
window from the item and then RearrangeDuringDrag gets back the item
from the window. Also, when RearrangeDuringDrag calls
SetBoundsAndUpdatePositions, for dragging from the top or from the
shelf, ignored_items shall be {} instead of the confusing {nullptr}.

Bug: None
Change-Id: Ia724128f6dcaf0adc71fa69f4501309e3994c398
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1987827Reviewed-by: default avatarSammie Quon <sammiequon@chromium.org>
Commit-Queue: Avery Musbach <amusbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#728708}
parent 9eac333a
......@@ -656,7 +656,7 @@ void OverviewGrid::SetBoundsAndUpdatePositions(
}
void OverviewGrid::RearrangeDuringDrag(
aura::Window* dragged_window,
OverviewItem* dragged_item,
SplitViewDragIndicators::WindowDraggingState window_dragging_state) {
OverviewItem* drop_target = GetDropTarget();
......@@ -673,8 +673,10 @@ void OverviewGrid::RearrangeDuringDrag(
root_window_, base::make_optional(window_dragging_state),
/*divider_changed=*/false, /*account_for_hotseat=*/true);
if (bounds_ != wanted_grid_bounds) {
SetBoundsAndUpdatePositions(wanted_grid_bounds,
{GetOverviewItemContaining(dragged_window)},
base::flat_set<OverviewItem*> ignored_items;
if (dragged_item)
ignored_items.insert(dragged_item);
SetBoundsAndUpdatePositions(wanted_grid_bounds, ignored_items,
/*animate=*/true);
}
}
......@@ -743,7 +745,7 @@ void OverviewGrid::OnWindowDragContinued(
DCHECK_EQ(dragged_window_, dragged_window);
DCHECK_EQ(dragged_window->GetRootWindow(), root_window_);
RearrangeDuringDrag(dragged_window, window_dragging_state);
RearrangeDuringDrag(nullptr, window_dragging_state);
UpdateDropTargetBackgroundVisibility(nullptr, location_in_screen);
aura::Window* target_window =
......
......@@ -143,9 +143,10 @@ class ASH_EXPORT OverviewGrid : public SplitViewObserver,
bool animate);
// Updates overview bounds and hides the drop target when a preview area is
// shown or the drag is currently outside of |root_window_|.
// shown or the drag is currently outside of |root_window_|. For dragging from
// the top or from the shelf, pass null for |dragged_item|.
void RearrangeDuringDrag(
aura::Window* dragged_window,
OverviewItem* dragged_item,
SplitViewDragIndicators::WindowDraggingState window_dragging_state);
// Sets the dragged window on |split_view_drag_indicators_|.
......@@ -160,8 +161,8 @@ class ASH_EXPORT OverviewGrid : public SplitViewObserver,
bool MaybeUpdateDesksWidgetBounds();
// Updates the appearance of the drop target to visually indicate when the
// dragged window is being dragged over it. For dragging from the top, pass
// null for |dragged_item|.
// dragged window is being dragged over it. For dragging from the top or from
// the shelf, pass null for |dragged_item|.
void UpdateDropTargetBackgroundVisibility(
OverviewItem* dragged_item,
const gfx::PointF& location_in_screen);
......
......@@ -361,11 +361,11 @@ void OverviewSession::ResetSplitViewDragIndicatorsWindowDraggingStates() {
}
}
void OverviewSession::RearrangeDuringDrag(aura::Window* dragged_window) {
void OverviewSession::RearrangeDuringDrag(OverviewItem* dragged_item) {
for (std::unique_ptr<OverviewGrid>& grid : grid_list_) {
DCHECK(grid->split_view_drag_indicators());
grid->RearrangeDuringDrag(
dragged_window,
dragged_item,
grid->split_view_drag_indicators()->current_window_dragging_state());
}
}
......
......@@ -145,7 +145,7 @@ class ASH_EXPORT OverviewSession : public display::DisplayObserver,
void ResetSplitViewDragIndicatorsWindowDraggingStates();
// See |OverviewGrid::RearrangeDuringDrag|.
void RearrangeDuringDrag(aura::Window* dragged_window);
void RearrangeDuringDrag(OverviewItem* dragged_item);
// Updates the appearance of each drop target to visually indicate when the
// dragged window is being dragged over it.
......
......@@ -600,7 +600,7 @@ void OverviewWindowDragController::UpdateDragIndicatorsAndOverviewGrid(
/*is_dragging=*/true,
SplitViewDragIndicators::WindowDraggingState::kFromOverview,
snap_position_));
overview_session_->RearrangeDuringDrag(item_->GetWindow());
overview_session_->RearrangeDuringDrag(item_);
}
aura::Window* OverviewWindowDragController::GetRootWindowBeingDraggedIn()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment