Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2755)

Unified Diff: ash/shell.cc

Issue 2169533002: mash: Migrate shelf app list button to wm common types (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: move files, cleanup Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ash/shell.cc
diff --git a/ash/shell.cc b/ash/shell.cc
index d91499863a6dc20dd7335d2aa174a1e9338c5ce4..19e80a37852241c4844d82a4b781eb86c1e7bff3 100644
--- a/ash/shell.cc
+++ b/ash/shell.cc
@@ -20,6 +20,7 @@
#include "ash/common/login_status.h"
#include "ash/common/pointer_watcher_delegate.h"
#include "ash/common/session/session_state_delegate.h"
+#include "ash/common/shelf/app_list_shelf_item_delegate.h"
#include "ash/common/shelf/shelf_item_delegate.h"
#include "ash/common/shelf/shelf_item_delegate_manager.h"
#include "ash/common/shelf/shelf_model.h"
@@ -56,7 +57,6 @@
#include "ash/magnifier/partial_magnification_controller.h"
#include "ash/new_window_delegate.h"
#include "ash/root_window_controller.h"
-#include "ash/shelf/app_list_shelf_item_delegate.h"
#include "ash/shelf/shelf.h"
#include "ash/shelf/shelf_delegate.h"
#include "ash/shelf/shelf_widget.h"
@@ -85,7 +85,6 @@
#include "base/bind.h"
#include "base/memory/ptr_util.h"
#include "base/trace_event/trace_event.h"
-#include "ui/app_list/presenter/app_list_presenter.h"
#include "ui/aura/client/aura_constants.h"
#include "ui/aura/env.h"
#include "ui/aura/layout_manager.h"
@@ -160,14 +159,6 @@ namespace {
using aura::Window;
using views::Widget;
-// Returns the display id corresponding to window, or |GetTargetDisplayId()|
-// if |window| is null.
-int64_t GetDisplayIdForWindow(aura::Window* window) {
- if (!window)
- return Shell::GetTargetDisplayId();
- return display::Screen::GetScreen()->GetDisplayNearestWindow(window).id();
-}
-
// A Corewm VisibilityController subclass that calls the Ash animation routine
// so we can pick up our extended animations. See ash/wm/window_animations.h.
class AshVisibilityController : public ::wm::VisibilityController {
@@ -315,30 +306,6 @@ void Shell::ShowContextMenu(const gfx::Point& location_in_screen,
source_type);
}
-void Shell::ShowAppList(aura::Window* window) {
- // If the context window is not given, show it on the target root window.
- wm_shell_->delegate()->GetAppListPresenter()->Show(
- GetDisplayIdForWindow(window));
-}
-
-void Shell::DismissAppList() {
- wm_shell_->delegate()->GetAppListPresenter()->Dismiss();
-}
-
-void Shell::ToggleAppList(aura::Window* window) {
- // If the context window is not given, show it on the target root window.
- wm_shell_->delegate()->GetAppListPresenter()->ToggleAppList(
- GetDisplayIdForWindow(window));
-}
-
-bool Shell::IsApplistVisible() const {
- return wm_shell_->delegate()->GetAppListPresenter()->IsVisible();
-}
-
-bool Shell::GetAppListTargetVisibility() const {
- return wm_shell_->delegate()->GetAppListPresenter()->GetTargetVisibility();
-}
-
views::NonClientFrameView* Shell::CreateDefaultNonClientFrameView(
views::Widget* widget) {
// Use translucent-style window frames for dialogs.
@@ -539,24 +506,26 @@ SystemTray* Shell::GetPrimarySystemTray() {
ShelfDelegate* Shell::GetShelfDelegate() {
if (!shelf_delegate_) {
+ ShelfModel* shelf_model = wm_shell_->shelf_model();
// Creates ShelfItemDelegateManager before ShelfDelegate.
+ // TODO(jamescook): Move this into WmShell.
shelf_item_delegate_manager_.reset(
- new ShelfItemDelegateManager(shelf_model_.get()));
+ new ShelfItemDelegateManager(shelf_model));
shelf_delegate_.reset(
- wm_shell_->delegate()->CreateShelfDelegate(shelf_model_.get()));
+ wm_shell_->delegate()->CreateShelfDelegate(shelf_model));
std::unique_ptr<ShelfItemDelegate> controller(new AppListShelfItemDelegate);
msw 2016/07/20 17:33:50 future: This should probably happen in shelf_view.
James Cook 2016/07/20 18:35:39 Acknowledged.
// Finding the shelf model's location of the app list and setting its
// ShelfItemDelegate.
- int app_list_index = shelf_model_->GetItemIndexForType(TYPE_APP_LIST);
+ int app_list_index = shelf_model->GetItemIndexForType(TYPE_APP_LIST);
DCHECK_GE(app_list_index, 0);
- ShelfID app_list_id = shelf_model_->items()[app_list_index].id;
+ ShelfID app_list_id = shelf_model->items()[app_list_index].id;
DCHECK(app_list_id);
shelf_item_delegate_manager_->SetShelfItemDelegate(app_list_id,
std::move(controller));
shelf_window_watcher_.reset(new ShelfWindowWatcher(
- shelf_model_.get(), shelf_item_delegate_manager_.get()));
+ shelf_model, shelf_item_delegate_manager_.get()));
}
return shelf_delegate_.get();
}
@@ -595,7 +564,6 @@ Shell::Shell(ShellDelegate* delegate, base::SequencedWorkerPool* blocking_pool)
: wm_shell_(new WmShellAura(base::WrapUnique(delegate))),
target_root_window_(nullptr),
scoped_target_root_window_(nullptr),
- shelf_model_(new ShelfModel),
link_handler_model_factory_(nullptr),
activation_client_(nullptr),
#if defined(OS_CHROMEOS)
@@ -706,8 +674,8 @@ Shell::~Shell() {
wm_shell_->DeleteWindowCycleController();
wm_shell_->DeleteWindowSelectorController();
- // |shelf_window_watcher_| has a weak pointer to |shelf_Model_|
- // and has window observers.
+ // |shelf_window_watcher_| has a weak pointer to the shelf model and has
+ // window observers.
shelf_window_watcher_.reset();
// Destroy all child windows including widgets.
@@ -730,10 +698,8 @@ Shell::~Shell() {
event_client_.reset();
toplevel_window_event_handler_.reset();
visibility_controller_.reset();
- // |shelf_item_delegate_manager_| observes |shelf_model_|. It must be
- // destroyed before |shelf_model_| is destroyed.
+ // |shelf_item_delegate_manager_| observes the shelf model.
shelf_item_delegate_manager_.reset();
- shelf_model_.reset();
power_button_controller_.reset();
lock_state_controller_.reset();
« ash/shelf/app_list_button.h ('K') | « ash/shell.h ('k') | ash/shell/app_list.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698