Commit 9d83ec47 authored by minch's avatar minch Committed by Commit Bot

back_gesture: Enable left swipe to exit home screen search result page.

Bug: 1002733
Change-Id: I79cff30c75781b5bb99aaf6d9d9a613506a23e8c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1872446Reviewed-by: default avatarXiyuan Xia <xiyuan@chromium.org>
Commit-Queue: Min Chen <minch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#708219}
parent dc16fb53
......@@ -4,7 +4,9 @@
#include "ash/wm/toplevel_window_event_handler.h"
#include "ash/app_list/app_list_controller_impl.h"
#include "ash/home_screen/home_screen_controller.h"
#include "ash/public/cpp/app_list/app_list_types.h"
#include "ash/public/cpp/app_types.h"
#include "ash/public/cpp/ash_features.h"
#include "ash/session/session_controller_impl.h"
......@@ -128,9 +130,13 @@ bool CanStartGoingBack(aura::Window* target) {
return false;
}
// Do not enable back gesture if home screen is visible.
if (shell->home_screen_controller()->IsHomeScreenVisible())
// Do not enable back gesture if home screen is visible but not in
// |kFullscreenSearch| state.
if (shell->home_screen_controller()->IsHomeScreenVisible() &&
shell->app_list_controller()->GetAppListViewState() !=
AppListViewState::kFullscreenSearch) {
return false;
}
views::Widget* widget = views::Widget::GetTopLevelWidgetForNativeView(target);
if (!widget)
......
......@@ -5,6 +5,9 @@
#include "ash/wm/toplevel_window_event_handler.h"
#include "ash/accelerators/accelerator_controller_impl.h"
#include "ash/app_list/test/app_list_test_helper.h"
#include "ash/app_list/views/app_list_view.h"
#include "ash/app_list/views/search_box_view.h"
#include "ash/display/screen_orientation_controller.h"
#include "ash/display/screen_orientation_controller_test_api.h"
#include "ash/home_screen/home_screen_controller.h"
......@@ -1162,11 +1165,13 @@ TEST_F(ToplevelWindowEventHandlerBackGestureTest, DonotStartGoingBack) {
EXPECT_EQ(0, target_back_press.accelerator_count());
EXPECT_EQ(0, target_back_release.accelerator_count());
// Should not go back if home screen is not visible.
// Should not go back if home screen is visible and in |kFullscreenAllApps|
// state.
shell->overview_controller()->EndOverview();
ASSERT_FALSE(shell->overview_controller()->InOverviewSession());
shell->home_screen_controller()->GoHome(GetPrimaryDisplay().id());
ASSERT_TRUE(shell->home_screen_controller()->IsHomeScreenVisible());
GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenAllApps);
generator->GestureScrollSequence(
start,
gfx::Point(ToplevelWindowEventHandler::kSwipingDistanceForGoingBack + 10,
......@@ -1174,6 +1179,22 @@ TEST_F(ToplevelWindowEventHandlerBackGestureTest, DonotStartGoingBack) {
base::TimeDelta::FromMilliseconds(100), 3);
EXPECT_EQ(0, target_back_press.accelerator_count());
EXPECT_EQ(0, target_back_release.accelerator_count());
// Should exit |kFullscreenSearch| to enter |kFullscreenAllApps| state while
// home screen search result page is opened.
generator->GestureTapAt(GetAppListTestHelper()
->GetAppListView()
->search_box_view()
->GetBoundsInScreen()
.CenterPoint());
GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenSearch);
generator->GestureScrollSequence(
start,
gfx::Point(ToplevelWindowEventHandler::kSwipingDistanceForGoingBack + 10,
100),
base::TimeDelta::FromMilliseconds(100), 3);
EXPECT_EQ(1, target_back_release.accelerator_count());
GetAppListTestHelper()->CheckState(AppListViewState::kFullscreenAllApps);
}
namespace {
......
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