Commit 8ef225b7 authored by Xiaohui Chen's avatar Xiaohui Chen Committed by Commit Bot

[homecher] only minimize cycle list windows

Bug: b:112331332
Test: manually test on device, minimizes chrome windows but not
Test: assistant window.
Change-Id: I6d1cd8badabee351536d886271dd26b4f02be94b
Reviewed-on: https://chromium-review.googlesource.com/1171254Reviewed-by: default avatarMitsuru Oshima <oshima@chromium.org>
Reviewed-by: default avatarWeidong Guo <weidongg@chromium.org>
Commit-Queue: Xiaohui Chen <xiaohuic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582831}
parent 5afd5ef8
...@@ -1799,6 +1799,7 @@ test("ash_unittests") { ...@@ -1799,6 +1799,7 @@ test("ash_unittests") {
"screen_util_unittest.cc", "screen_util_unittest.cc",
"session/session_controller_unittest.cc", "session/session_controller_unittest.cc",
"shelf/app_list_button_unittest.cc", "shelf/app_list_button_unittest.cc",
"shelf/app_list_shelf_item_delegate_unittest.cc",
"shelf/back_button_unittest.cc", "shelf/back_button_unittest.cc",
"shelf/login_shelf_view_unittest.cc", "shelf/login_shelf_view_unittest.cc",
"shelf/shelf_application_menu_model_unittest.cc", "shelf/shelf_application_menu_model_unittest.cc",
......
...@@ -51,7 +51,7 @@ void AppListShelfItemDelegate::ItemSelected(std::unique_ptr<ui::Event> event, ...@@ -51,7 +51,7 @@ void AppListShelfItemDelegate::ItemSelected(std::unique_ptr<ui::Event> event,
Shell::Get()->GetPrimaryRootWindow()->GetChildById( Shell::Get()->GetPrimaryRootWindow()->GetChildById(
kShellWindowId_AppListTabletModeContainer); kShellWindowId_AppListTabletModeContainer);
aura::Window::Windows windows = aura::Window::Windows windows =
Shell::Get()->mru_window_tracker()->BuildWindowListIgnoreModal(); Shell::Get()->mru_window_tracker()->BuildWindowForCycleList();
for (auto* window : windows) { for (auto* window : windows) {
if (!app_list_container->Contains(window) && if (!app_list_container->Contains(window) &&
!wm::GetWindowState(window)->IsMinimized()) { !wm::GetWindowState(window)->IsMinimized()) {
......
...@@ -5,13 +5,16 @@ ...@@ -5,13 +5,16 @@
#ifndef ASH_SHELF_APP_LIST_SHELF_ITEM_DELEGATE_H_ #ifndef ASH_SHELF_APP_LIST_SHELF_ITEM_DELEGATE_H_
#define ASH_SHELF_APP_LIST_SHELF_ITEM_DELEGATE_H_ #define ASH_SHELF_APP_LIST_SHELF_ITEM_DELEGATE_H_
#include <memory>
#include "ash/ash_export.h"
#include "ash/public/cpp/shelf_item_delegate.h" #include "ash/public/cpp/shelf_item_delegate.h"
#include "base/macros.h" #include "base/macros.h"
namespace ash { namespace ash {
// ShelfItemDelegate for TYPE_APP_LIST. // ShelfItemDelegate for TYPE_APP_LIST.
class AppListShelfItemDelegate : public ShelfItemDelegate { class ASH_EXPORT AppListShelfItemDelegate : public ShelfItemDelegate {
public: public:
AppListShelfItemDelegate(); AppListShelfItemDelegate();
~AppListShelfItemDelegate() override; ~AppListShelfItemDelegate() override;
......
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ash/shelf/app_list_shelf_item_delegate.h"
#include <memory>
#include <utility>
#include "ash/shell.h"
#include "ash/test/ash_test_base.h"
#include "ash/wm/mru_window_tracker.h"
#include "ash/wm/tablet_mode/tablet_mode_controller.h"
#include "ash/wm/window_state.h"
#include "ash/wm/window_util.h"
#include "base/macros.h"
namespace ash {
namespace {
class AppListShelfItemDelegateTest : public AshTestBase {
public:
AppListShelfItemDelegateTest()
: delegate_(std::make_unique<AppListShelfItemDelegate>()) {}
~AppListShelfItemDelegateTest() override = default;
std::unique_ptr<aura::Window> CreateTestWindow() {
return AshTestBase::CreateTestWindow(gfx::Rect(0, 0, 400, 400));
}
std::unique_ptr<aura::Window> CreatePopupTestWindow() {
return AshTestBase::CreateTestWindow(gfx::Rect(0, 0, 400, 400),
aura::client::WINDOW_TYPE_POPUP);
}
AppListShelfItemDelegate* delegate() { return delegate_.get(); }
private:
std::unique_ptr<AppListShelfItemDelegate> delegate_;
DISALLOW_COPY_AND_ASSIGN(AppListShelfItemDelegateTest);
};
TEST_F(AppListShelfItemDelegateTest, OnlyMinimizeCycleListWindows) {
std::unique_ptr<aura::Window> w1(CreateTestWindow());
std::unique_ptr<aura::Window> w2(CreatePopupTestWindow());
Shell::Get()->tablet_mode_controller()->EnableTabletModeWindowManager(true);
std::unique_ptr<ui::Event> test_event = std::make_unique<ui::KeyEvent>(
ui::EventType::ET_MOUSE_PRESSED, ui::VKEY_UNKNOWN, ui::EF_NONE);
delegate()->ItemSelected(
std::move(test_event),
/*display_id=*/0, ShelfLaunchSource::LAUNCH_FROM_UNKNOWN,
base::BindOnce(
[](ash::ShelfAction, base::Optional<ash::MenuItemList>) {}));
ASSERT_TRUE(wm::GetWindowState(w1.get())->IsMinimized());
ASSERT_FALSE(wm::GetWindowState(w2.get())->IsMinimized());
}
} // namespace
} // 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