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

split view: Make OnWindowDraggingStateChanged functions more readable

Bug: None
Change-Id: Ie13e6aaf370f9428566f8cb3ed7e926776c4d21a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1897006Reviewed-by: default avatarMitsuru Oshima <oshima@chromium.org>
Commit-Queue: Avery Musbach <amusbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#713125}
parent b4256c27
......@@ -166,6 +166,12 @@ class SplitViewDragIndicators::RotatedImageLabelView : public views::View {
return;
}
// No top label for dragging from the top in portrait orientation.
if (window_dragging_state == WindowDraggingState::kFromTop &&
!IsCurrentScreenOrientationLandscape() && !is_right_or_bottom_) {
return;
}
// When dragging ends, any label that is showing shall fade out with the
// corresponding indicator.
if (window_dragging_state == WindowDraggingState::kNoDrag) {
......@@ -180,19 +186,11 @@ class SplitViewDragIndicators::RotatedImageLabelView : public views::View {
return;
}
// No top label for dragging from the top in portrait orientation.
if (window_dragging_state == WindowDraggingState::kFromTop &&
!IsCurrentScreenOrientationLandscape() && !is_right_or_bottom_) {
return;
}
// Set the text according to |can_dragged_window_be_snapped|.
SetLabelText(l10n_util::GetStringUTF16(
can_dragged_window_be_snapped ? IDS_ASH_SPLIT_VIEW_GUIDANCE
: IDS_ASH_SPLIT_VIEW_CANNOT_SNAP));
// When dragging begins, fade in with an indicator.
// When dragging begins, set the text and fade in with an indicator.
if (previous_window_dragging_state == WindowDraggingState::kNoDrag) {
SetLabelText(l10n_util::GetStringUTF16(
can_dragged_window_be_snapped ? IDS_ASH_SPLIT_VIEW_GUIDANCE
: IDS_ASH_SPLIT_VIEW_CANNOT_SNAP));
DoSplitviewOpacityAnimation(
layer(), SPLITVIEW_ANIMATION_TEXT_FADE_IN_WITH_HIGHLIGHT);
return;
......
......@@ -178,6 +178,13 @@ void SplitViewHighlightView::OnWindowDraggingStateChanged(
SplitViewDragIndicators::WindowDraggingState window_dragging_state,
SplitViewDragIndicators::WindowDraggingState previous_window_dragging_state,
bool can_dragged_window_be_snapped) {
// No top indicator for dragging from the top in portrait orientation.
if (window_dragging_state ==
SplitViewDragIndicators::WindowDraggingState::kFromTop &&
!IsCurrentScreenOrientationLandscape() && !is_right_or_bottom_) {
return;
}
const SplitViewController::SnapPosition preview_position =
SplitViewDragIndicators::GetSnapPosition(window_dragging_state);
const SplitViewController::SnapPosition previous_preview_position =
......@@ -205,32 +212,41 @@ void SplitViewHighlightView::OnWindowDraggingStateChanged(
return;
}
// No top indicator for dragging from the top in portrait orientation.
if (window_dragging_state ==
SplitViewDragIndicators::WindowDraggingState::kFromTop &&
!IsCurrentScreenOrientationLandscape() && !is_right_or_bottom_) {
return;
}
const bool in_split_view_mode =
const bool previews_only =
SplitViewController::Get(GetWidget()->GetNativeWindow())
->InSplitViewMode();
if (previous_preview_position != SplitViewController::NONE) {
DoSplitviewOpacityAnimation(
layer(), in_split_view_mode
? SPLITVIEW_ANIMATION_HIGHLIGHT_FADE_OUT
: (is_right_or_bottom_ !=
IsPhysicalLeftOrTop(previous_preview_position)
? SPLITVIEW_ANIMATION_HIGHLIGHT_FADE_IN
: SPLITVIEW_ANIMATION_OTHER_HIGHLIGHT_FADE_IN));
// There was a snap preview showing, but now the user has dragged away from
// the edge of the screen, so that the preview should go away.
if (is_right_or_bottom_ != IsPhysicalLeftOrTop(previous_preview_position)) {
// This code is for the preview. If |previews_only|, just fade out. Else
// fade in from |kPreviewAreaHighlightOpacity| to |kHighlightOpacity|.
DoSplitviewOpacityAnimation(
layer(), previews_only ? SPLITVIEW_ANIMATION_HIGHLIGHT_FADE_OUT
: SPLITVIEW_ANIMATION_HIGHLIGHT_FADE_IN);
} else {
// This code is for the other highlight. If |previews_only|, just stay
// hidden (in other words, do nothing). Else fade in.
DCHECK_EQ(0.f, layer()->opacity());
if (!previews_only) {
DoSplitviewOpacityAnimation(
layer(), SPLITVIEW_ANIMATION_OTHER_HIGHLIGHT_FADE_IN);
}
}
return;
}
SetColor(can_dragged_window_be_snapped ? SK_ColorWHITE : SK_ColorBLACK);
DoSplitviewOpacityAnimation(
layer(), in_split_view_mode ? SPLITVIEW_ANIMATION_HIGHLIGHT_FADE_OUT
: SPLITVIEW_ANIMATION_HIGHLIGHT_FADE_IN);
// The drag just started, and not in a snap area. If |previews_only|, there is
// nothing to do. Else set the color of the indicators and fade them in.
DCHECK_EQ(SplitViewDragIndicators::WindowDraggingState::kNoDrag,
previous_window_dragging_state);
DCHECK_EQ(0.f, layer()->opacity());
if (!previews_only) {
SetColor(can_dragged_window_be_snapped ? SK_ColorWHITE : SK_ColorBLACK);
DoSplitviewOpacityAnimation(layer(), SPLITVIEW_ANIMATION_HIGHLIGHT_FADE_IN);
return;
}
}
} // namespace ash
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