Commit 5acd2910 authored by Avery Musbach's avatar Avery Musbach Committed by Commit Bot

overview: Simplify RearrangeDuringDrag and remove unnecessary parameter

The new window dragging state kOtherDisplay added in [1] facilitates
making RearrangeDuringDrag simpler and removing a parameter from it.

[1] https://chromium-review.googlesource.com/c/chromium/src/+/1977155

Bug: 961170
Change-Id: Icd4abaaa7f6e7c1d7f055cea76403c7697902500
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1978999
Commit-Queue: Avery Musbach <amusbach@chromium.org>
Reviewed-by: default avatarXiaoqian Dai <xdai@chromium.org>
Cr-Commit-Position: refs/heads/master@{#726879}
parent 073cf292
......@@ -212,6 +212,27 @@ std::unique_ptr<views::Widget> CreateDropTargetWidget(
return widget;
}
// Returns 1 if the name of |window_dragging_state| begins with "kFrom," else 0.
float GetWantedDropTargetOpacity(
SplitViewDragIndicators::WindowDraggingState window_dragging_state) {
switch (window_dragging_state) {
case SplitViewDragIndicators::WindowDraggingState::kNoDrag:
return 0.f;
case SplitViewDragIndicators::WindowDraggingState::kOtherDisplay:
return 0.f;
case SplitViewDragIndicators::WindowDraggingState::kFromOverview:
return 1.f;
case SplitViewDragIndicators::WindowDraggingState::kFromTop:
return 1.f;
case SplitViewDragIndicators::WindowDraggingState::kFromShelf:
return 1.f;
case SplitViewDragIndicators::WindowDraggingState::kToSnapLeft:
return 0.f;
case SplitViewDragIndicators::WindowDraggingState::kToSnapRight:
return 0.f;
}
}
// Returns the bounds for the overview window grid according to the split view
// state. If split view mode is active, the overview window should open on the
// opposite side of the default snap window. If |divider_changed| is true, maybe
......@@ -692,7 +713,6 @@ void OverviewGrid::SetBoundsAndUpdatePositions(
}
void OverviewGrid::RearrangeDuringDrag(
aura::Window* root_window_being_dragged_in,
aura::Window* dragged_window,
SplitViewDragIndicators::WindowDraggingState window_dragging_state) {
OverviewItem* drop_target = GetDropTarget();
......@@ -702,12 +722,7 @@ void OverviewGrid::RearrangeDuringDrag(
ScopedOverviewAnimationSettings settings(
OVERVIEW_ANIMATION_DROP_TARGET_FADE,
drop_target_widget_->GetNativeWindow());
drop_target->SetOpacity(root_window_being_dragged_in == root_window_ &&
SplitViewDragIndicators::GetSnapPosition(
window_dragging_state) ==
SplitViewController::NONE
? 1.f
: 0.f);
drop_target->SetOpacity(GetWantedDropTargetOpacity(window_dragging_state));
}
// Update the grid's bounds.
......@@ -789,7 +804,7 @@ void OverviewGrid::OnWindowDragContinued(
DCHECK_EQ(dragged_window_, dragged_window);
DCHECK_EQ(dragged_window->GetRootWindow(), root_window_);
RearrangeDuringDrag(root_window_, dragged_window, window_dragging_state);
RearrangeDuringDrag(dragged_window, window_dragging_state);
UpdateDropTargetBackgroundVisibility(nullptr, location_in_screen);
aura::Window* target_window =
......
......@@ -146,9 +146,8 @@ class ASH_EXPORT OverviewGrid : public SplitViewObserver,
bool animate);
// Updates overview bounds and hides the drop target when a preview area is
// shown or |root_window_being_dragged_in| does not equal |root_window_|.
// shown or the drag is currently outside of |root_window_|.
void RearrangeDuringDrag(
aura::Window* root_window_being_dragged_in,
aura::Window* dragged_window,
SplitViewDragIndicators::WindowDraggingState window_dragging_state);
......
......@@ -358,13 +358,11 @@ void OverviewSession::UpdateSplitViewDragIndicatorsWindowDraggingStates(
}
}
void OverviewSession::RearrangeDuringDrag(
aura::Window* root_window_being_dragged_in,
aura::Window* dragged_window) {
void OverviewSession::RearrangeDuringDrag(aura::Window* dragged_window) {
for (std::unique_ptr<OverviewGrid>& grid : grid_list_) {
DCHECK(grid->split_view_drag_indicators());
grid->RearrangeDuringDrag(
root_window_being_dragged_in, dragged_window,
dragged_window,
grid->split_view_drag_indicators()->current_window_dragging_state());
}
}
......
......@@ -146,8 +146,7 @@ class ASH_EXPORT OverviewSession : public display::DisplayObserver,
SplitViewController::SnapPosition snap_position);
// See |OverviewGrid::RearrangeDuringDrag|.
void RearrangeDuringDrag(aura::Window* root_window_being_dragged_in,
aura::Window* dragged_window);
void RearrangeDuringDrag(aura::Window* dragged_window);
// Updates the appearance of each drop target to visually indicate when the
// dragged window is being dragged over it.
......
......@@ -605,12 +605,11 @@ void OverviewWindowDragController::UpdateDragIndicatorsAndOverviewGrid(
return;
snap_position_ = GetSnapPosition(location_in_screen);
aura::Window* root_window = GetRootWindowBeingDraggedIn();
overview_session_->UpdateSplitViewDragIndicatorsWindowDraggingStates(
root_window, /*is_dragging=*/true,
GetRootWindowBeingDraggedIn(), /*is_dragging=*/true,
SplitViewDragIndicators::WindowDraggingState::kFromOverview,
snap_position_);
overview_session_->RearrangeDuringDrag(root_window, item_->GetWindow());
overview_session_->RearrangeDuringDrag(item_->GetWindow());
}
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