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

Side by Side Diff: ash/common/wm/dock/docked_window_layout_manager.cc

Issue 2739763003: Moves maintaining ShellObservers back to Shell (Closed)
Patch Set: merge Created 3 years, 9 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 unified diff | Download patch
« no previous file with comments | « ash/common/wallpaper/wallpaper_controller.cc ('k') | ash/common/wm/lock_layout_manager.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/common/wm/dock/docked_window_layout_manager.h" 5 #include "ash/common/wm/dock/docked_window_layout_manager.h"
6 6
7 #include "ash/animation/animation_change_type.h" 7 #include "ash/animation/animation_change_type.h"
8 #include "ash/common/shelf/shelf_background_animator.h" 8 #include "ash/common/shelf/shelf_background_animator.h"
9 #include "ash/common/shelf/shelf_background_animator_observer.h" 9 #include "ash/common/shelf/shelf_background_animator_observer.h"
10 #include "ash/common/shelf/shelf_constants.h" 10 #include "ash/common/shelf/shelf_constants.h"
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 wm::WORKSPACE_WINDOW_STATE_FULL_SCREEN), 375 wm::WORKSPACE_WINDOW_STATE_FULL_SCREEN),
376 docked_width_(0), 376 docked_width_(0),
377 in_overview_(false), 377 in_overview_(false),
378 alignment_(DOCKED_ALIGNMENT_NONE), 378 alignment_(DOCKED_ALIGNMENT_NONE),
379 preferred_alignment_(DOCKED_ALIGNMENT_NONE), 379 preferred_alignment_(DOCKED_ALIGNMENT_NONE),
380 event_source_(DOCKED_ACTION_SOURCE_UNKNOWN), 380 event_source_(DOCKED_ACTION_SOURCE_UNKNOWN),
381 last_active_window_(nullptr), 381 last_active_window_(nullptr),
382 last_action_time_(base::Time::Now()), 382 last_action_time_(base::Time::Now()),
383 background_widget_(nullptr) { 383 background_widget_(nullptr) {
384 DCHECK(dock_container); 384 DCHECK(dock_container);
385 dock_container_->GetShell()->AddShellObserver(this); 385 Shell::GetInstance()->AddShellObserver(this);
386 Shell::GetInstance()->activation_client()->AddObserver(this); 386 Shell::GetInstance()->activation_client()->AddObserver(this);
387 display::Screen::GetScreen()->AddObserver(this); 387 display::Screen::GetScreen()->AddObserver(this);
388 } 388 }
389 389
390 DockedWindowLayoutManager::~DockedWindowLayoutManager() { 390 DockedWindowLayoutManager::~DockedWindowLayoutManager() {
391 Shutdown(); 391 Shutdown();
392 } 392 }
393 393
394 // static 394 // static
395 DockedWindowLayoutManager* DockedWindowLayoutManager::Get(WmWindow* window) { 395 DockedWindowLayoutManager* DockedWindowLayoutManager::Get(WmWindow* window) {
396 if (!window) 396 if (!window)
397 return nullptr; 397 return nullptr;
398 398
399 WmWindow* root = window->GetRootWindow(); 399 WmWindow* root = window->GetRootWindow();
400 return static_cast<DockedWindowLayoutManager*>( 400 return static_cast<DockedWindowLayoutManager*>(
401 root->GetChildByShellWindowId(kShellWindowId_DockedContainer) 401 root->GetChildByShellWindowId(kShellWindowId_DockedContainer)
402 ->GetLayoutManager()); 402 ->GetLayoutManager());
403 } 403 }
404 404
405 void DockedWindowLayoutManager::Shutdown() { 405 void DockedWindowLayoutManager::Shutdown() {
406 background_widget_.reset(); 406 background_widget_.reset();
407 shelf_observer_.reset(); 407 shelf_observer_.reset();
408 shelf_ = nullptr; 408 shelf_ = nullptr;
409 for (WmWindow* child : dock_container_->GetChildren()) { 409 for (WmWindow* child : dock_container_->GetChildren()) {
410 child->aura_window()->RemoveObserver(this); 410 child->aura_window()->RemoveObserver(this);
411 child->GetWindowState()->RemoveObserver(this); 411 child->GetWindowState()->RemoveObserver(this);
412 } 412 }
413 Shell::GetInstance()->activation_client()->RemoveObserver(this); 413 Shell::GetInstance()->activation_client()->RemoveObserver(this);
414 dock_container_->GetShell()->RemoveShellObserver(this); 414 Shell::GetInstance()->RemoveShellObserver(this);
415 display::Screen::GetScreen()->RemoveObserver(this); 415 display::Screen::GetScreen()->RemoveObserver(this);
416 } 416 }
417 417
418 void DockedWindowLayoutManager::AddObserver( 418 void DockedWindowLayoutManager::AddObserver(
419 DockedWindowLayoutManagerObserver* observer) { 419 DockedWindowLayoutManagerObserver* observer) {
420 observer_list_.AddObserver(observer); 420 observer_list_.AddObserver(observer);
421 } 421 }
422 422
423 void DockedWindowLayoutManager::RemoveObserver( 423 void DockedWindowLayoutManager::RemoveObserver(
424 DockedWindowLayoutManagerObserver* observer) { 424 DockedWindowLayoutManagerObserver* observer) {
(...skipping 907 matching lines...) Expand 10 before | Expand all | Expand 10 after
1332 const gfx::Rect& keyboard_bounds) { 1332 const gfx::Rect& keyboard_bounds) {
1333 // This bounds change will have caused a change to the Shelf which does not 1333 // This bounds change will have caused a change to the Shelf which does not
1334 // propagate automatically to this class, so manually recalculate bounds. 1334 // propagate automatically to this class, so manually recalculate bounds.
1335 Relayout(); 1335 Relayout();
1336 UpdateDockBounds(DockedWindowLayoutManagerObserver::KEYBOARD_BOUNDS_CHANGING); 1336 UpdateDockBounds(DockedWindowLayoutManagerObserver::KEYBOARD_BOUNDS_CHANGING);
1337 } 1337 }
1338 1338
1339 void DockedWindowLayoutManager::OnKeyboardClosed() {} 1339 void DockedWindowLayoutManager::OnKeyboardClosed() {}
1340 1340
1341 } // namespace ash 1341 } // namespace ash
OLDNEW
« no previous file with comments | « ash/common/wallpaper/wallpaper_controller.cc ('k') | ash/common/wm/lock_layout_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698