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

Side by Side Diff: ash/common/wm/container_finder.cc

Issue 2739553005: Moves maintaining root_window_for_new_windows_ to Shell (Closed)
Patch Set: remove ash:: 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/system/toast/toast_overlay.cc ('k') | ash/common/wm/mru_window_tracker.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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/container_finder.h" 5 #include "ash/common/wm/container_finder.h"
6 6
7 #include "ash/common/session/session_state_delegate.h" 7 #include "ash/common/session/session_state_delegate.h"
8 #include "ash/common/wm/always_on_top_controller.h" 8 #include "ash/common/wm/always_on_top_controller.h"
9 #include "ash/common/wm/root_window_finder.h" 9 #include "ash/common/wm/root_window_finder.h"
10 #include "ash/common/wm/window_state.h" 10 #include "ash/common/wm/window_state.h"
11 #include "ash/common/wm_shell.h" 11 #include "ash/common/wm_shell.h"
12 #include "ash/common/wm_window.h" 12 #include "ash/common/wm_window.h"
13 #include "ash/public/cpp/shell_window_ids.h" 13 #include "ash/public/cpp/shell_window_ids.h"
14 #include "ash/public/cpp/window_properties.h" 14 #include "ash/public/cpp/window_properties.h"
15 #include "ash/root_window_controller.h" 15 #include "ash/root_window_controller.h"
16 #include "ash/shell.h"
16 #include "ui/gfx/geometry/rect.h" 17 #include "ui/gfx/geometry/rect.h"
17 18
18 namespace ash { 19 namespace ash {
19 namespace wm { 20 namespace wm {
20 namespace { 21 namespace {
21 22
22 WmWindow* FindContainerRoot(WmShell* shell, const gfx::Rect& bounds) { 23 WmWindow* FindContainerRoot(const gfx::Rect& bounds) {
23 if (bounds == gfx::Rect()) 24 if (bounds == gfx::Rect())
24 return shell->GetRootWindowForNewWindows(); 25 return Shell::GetWmRootWindowForNewWindows();
25 return GetRootWindowMatching(bounds); 26 return GetRootWindowMatching(bounds);
26 } 27 }
27 28
28 bool HasTransientParentWindow(const WmWindow* window) { 29 bool HasTransientParentWindow(const WmWindow* window) {
29 return window->GetTransientParent() && 30 return window->GetTransientParent() &&
30 window->GetTransientParent()->GetType() != ui::wm::WINDOW_TYPE_UNKNOWN; 31 window->GetTransientParent()->GetType() != ui::wm::WINDOW_TYPE_UNKNOWN;
31 } 32 }
32 33
33 WmWindow* GetSystemModalContainer(WmWindow* root, WmWindow* window) { 34 WmWindow* GetSystemModalContainer(WmWindow* root, WmWindow* window) {
34 DCHECK(window->IsSystemModal()); 35 DCHECK(window->IsSystemModal());
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 71
71 WmWindow* GetDefaultParent(WmWindow* context, 72 WmWindow* GetDefaultParent(WmWindow* context,
72 WmWindow* window, 73 WmWindow* window,
73 const gfx::Rect& bounds) { 74 const gfx::Rect& bounds) {
74 WmWindow* target_root = nullptr; 75 WmWindow* target_root = nullptr;
75 WmWindow* transient_parent = window->GetTransientParent(); 76 WmWindow* transient_parent = window->GetTransientParent();
76 if (transient_parent) { 77 if (transient_parent) {
77 // Transient window should use the same root as its transient parent. 78 // Transient window should use the same root as its transient parent.
78 target_root = transient_parent->GetRootWindow(); 79 target_root = transient_parent->GetRootWindow();
79 } else { 80 } else {
80 target_root = FindContainerRoot(context->GetShell(), bounds); 81 target_root = FindContainerRoot(bounds);
81 } 82 }
82 83
83 switch (window->GetType()) { 84 switch (window->GetType()) {
84 case ui::wm::WINDOW_TYPE_NORMAL: 85 case ui::wm::WINDOW_TYPE_NORMAL:
85 case ui::wm::WINDOW_TYPE_POPUP: 86 case ui::wm::WINDOW_TYPE_POPUP:
86 if (window->IsSystemModal()) 87 if (window->IsSystemModal())
87 return GetSystemModalContainer(target_root, window); 88 return GetSystemModalContainer(target_root, window);
88 if (HasTransientParentWindow(window)) 89 if (HasTransientParentWindow(window))
89 return GetContainerForWindow(window->GetTransientParent()); 90 return GetContainerForWindow(window->GetTransientParent());
90 return GetContainerFromAlwaysOnTopController(target_root, window); 91 return GetContainerFromAlwaysOnTopController(target_root, window);
(...skipping 30 matching lines...) Expand all
121 if (priority_root && priority_root->Contains(container)) 122 if (priority_root && priority_root->Contains(container))
122 containers.insert(containers.begin(), container); 123 containers.insert(containers.begin(), container);
123 else 124 else
124 containers.push_back(container); 125 containers.push_back(container);
125 } 126 }
126 return containers; 127 return containers;
127 } 128 }
128 129
129 } // namespace wm 130 } // namespace wm
130 } // namespace ash 131 } // namespace ash
OLDNEW
« no previous file with comments | « ash/common/system/toast/toast_overlay.cc ('k') | ash/common/wm/mru_window_tracker.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698