| Index: ash/common/wm/container_finder.cc
|
| diff --git a/ash/common/wm/container_finder.cc b/ash/common/wm/container_finder.cc
|
| deleted file mode 100644
|
| index ece5ca950a23442a1d38eb6d16ff3fbdfaac5336..0000000000000000000000000000000000000000
|
| --- a/ash/common/wm/container_finder.cc
|
| +++ /dev/null
|
| @@ -1,130 +0,0 @@
|
| -// Copyright 2016 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/common/wm/container_finder.h"
|
| -
|
| -#include "ash/common/session/session_state_delegate.h"
|
| -#include "ash/common/wm/always_on_top_controller.h"
|
| -#include "ash/common/wm/root_window_finder.h"
|
| -#include "ash/common/wm/window_state.h"
|
| -#include "ash/common/wm_shell.h"
|
| -#include "ash/common/wm_window.h"
|
| -#include "ash/public/cpp/shell_window_ids.h"
|
| -#include "ash/public/cpp/window_properties.h"
|
| -#include "ash/root_window_controller.h"
|
| -#include "ui/gfx/geometry/rect.h"
|
| -
|
| -namespace ash {
|
| -namespace wm {
|
| -namespace {
|
| -
|
| -WmWindow* FindContainerRoot(WmShell* shell, const gfx::Rect& bounds) {
|
| - if (bounds == gfx::Rect())
|
| - return shell->GetRootWindowForNewWindows();
|
| - return GetRootWindowMatching(bounds);
|
| -}
|
| -
|
| -bool HasTransientParentWindow(const WmWindow* window) {
|
| - return window->GetTransientParent() &&
|
| - window->GetTransientParent()->GetType() != ui::wm::WINDOW_TYPE_UNKNOWN;
|
| -}
|
| -
|
| -WmWindow* GetSystemModalContainer(WmWindow* root, WmWindow* window) {
|
| - DCHECK(window->IsSystemModal());
|
| -
|
| - // If screen lock is not active and user session is active,
|
| - // all modal windows are placed into the normal modal container.
|
| - // In case of missing transient parent (it could happen for alerts from
|
| - // background pages) assume that the window belongs to user session.
|
| - if (!window->GetShell()->GetSessionStateDelegate()->IsUserSessionBlocked() ||
|
| - !window->GetTransientParent()) {
|
| - return root->GetChildByShellWindowId(kShellWindowId_SystemModalContainer);
|
| - }
|
| -
|
| - // Otherwise those that originate from LockScreen container and above are
|
| - // placed in the screen lock modal container.
|
| - int window_container_id =
|
| - window->GetTransientParent()->GetParent()->GetShellWindowId();
|
| - if (window_container_id < kShellWindowId_LockScreenContainer)
|
| - return root->GetChildByShellWindowId(kShellWindowId_SystemModalContainer);
|
| - return root->GetChildByShellWindowId(kShellWindowId_LockSystemModalContainer);
|
| -}
|
| -
|
| -WmWindow* GetContainerFromAlwaysOnTopController(WmWindow* root,
|
| - WmWindow* window) {
|
| - return root->GetRootWindowController()
|
| - ->always_on_top_controller()
|
| - ->GetContainer(window);
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -WmWindow* GetContainerForWindow(WmWindow* window) {
|
| - WmWindow* parent = window->GetParent();
|
| - // The first parent with an explicit shell window ID is the container.
|
| - while (parent && parent->GetShellWindowId() == kShellWindowId_Invalid)
|
| - parent = parent->GetParent();
|
| - return parent;
|
| -}
|
| -
|
| -WmWindow* GetDefaultParent(WmWindow* context,
|
| - WmWindow* window,
|
| - const gfx::Rect& bounds) {
|
| - WmWindow* target_root = nullptr;
|
| - WmWindow* transient_parent = window->GetTransientParent();
|
| - if (transient_parent) {
|
| - // Transient window should use the same root as its transient parent.
|
| - target_root = transient_parent->GetRootWindow();
|
| - } else {
|
| - target_root = FindContainerRoot(context->GetShell(), bounds);
|
| - }
|
| -
|
| - switch (window->GetType()) {
|
| - case ui::wm::WINDOW_TYPE_NORMAL:
|
| - case ui::wm::WINDOW_TYPE_POPUP:
|
| - if (window->IsSystemModal())
|
| - return GetSystemModalContainer(target_root, window);
|
| - if (HasTransientParentWindow(window))
|
| - return GetContainerForWindow(window->GetTransientParent());
|
| - return GetContainerFromAlwaysOnTopController(target_root, window);
|
| - case ui::wm::WINDOW_TYPE_CONTROL:
|
| - return target_root->GetChildByShellWindowId(
|
| - kShellWindowId_UnparentedControlContainer);
|
| - case ui::wm::WINDOW_TYPE_PANEL:
|
| - if (window->aura_window()->GetProperty(kPanelAttachedKey))
|
| - return target_root->GetChildByShellWindowId(
|
| - kShellWindowId_PanelContainer);
|
| - return GetContainerFromAlwaysOnTopController(target_root, window);
|
| - case ui::wm::WINDOW_TYPE_MENU:
|
| - return target_root->GetChildByShellWindowId(kShellWindowId_MenuContainer);
|
| - case ui::wm::WINDOW_TYPE_TOOLTIP:
|
| - return target_root->GetChildByShellWindowId(
|
| - kShellWindowId_DragImageAndTooltipContainer);
|
| - default:
|
| - NOTREACHED() << "Window " << window->GetShellWindowId()
|
| - << " has unhandled type " << window->GetType();
|
| - break;
|
| - }
|
| - return nullptr;
|
| -}
|
| -
|
| -std::vector<WmWindow*> GetContainersFromAllRootWindows(
|
| - int container_id,
|
| - WmWindow* priority_root) {
|
| - std::vector<WmWindow*> containers;
|
| - for (WmWindow* root : WmShell::Get()->GetAllRootWindows()) {
|
| - WmWindow* container = root->GetChildByShellWindowId(container_id);
|
| - if (!container)
|
| - continue;
|
| -
|
| - if (priority_root && priority_root->Contains(container))
|
| - containers.insert(containers.begin(), container);
|
| - else
|
| - containers.push_back(container);
|
| - }
|
| - return containers;
|
| -}
|
| -
|
| -} // namespace wm
|
| -} // namespace ash
|
|
|