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

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

Issue 2814243002: Removes a couple more functions from WmWindow (Closed)
Patch Set: feedback Created 3 years, 8 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/wm/always_on_top_controller.cc ('k') | ash/wm/container_finder_unittest.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/wm/container_finder.h" 5 #include "ash/wm/container_finder.h"
6 6
7 #include "ash/public/cpp/shell_window_ids.h" 7 #include "ash/public/cpp/shell_window_ids.h"
8 #include "ash/public/cpp/window_properties.h" 8 #include "ash/public/cpp/window_properties.h"
9 #include "ash/root_window_controller.h" 9 #include "ash/root_window_controller.h"
10 #include "ash/session/session_controller.h" 10 #include "ash/session/session_controller.h"
(...skipping 28 matching lines...) Expand all
39 // In case of missing transient parent (it could happen for alerts from 39 // In case of missing transient parent (it could happen for alerts from
40 // background pages) assume that the window belongs to user session. 40 // background pages) assume that the window belongs to user session.
41 if (!Shell::Get()->session_controller()->IsUserSessionBlocked() || 41 if (!Shell::Get()->session_controller()->IsUserSessionBlocked() ||
42 !window->GetTransientParent()) { 42 !window->GetTransientParent()) {
43 return root->GetChildByShellWindowId(kShellWindowId_SystemModalContainer); 43 return root->GetChildByShellWindowId(kShellWindowId_SystemModalContainer);
44 } 44 }
45 45
46 // Otherwise those that originate from LockScreen container and above are 46 // Otherwise those that originate from LockScreen container and above are
47 // placed in the screen lock modal container. 47 // placed in the screen lock modal container.
48 int window_container_id = 48 int window_container_id =
49 window->GetTransientParent()->GetParent()->GetShellWindowId(); 49 window->GetTransientParent()->GetParent()->aura_window()->id();
50 if (window_container_id < kShellWindowId_LockScreenContainer) 50 if (window_container_id < kShellWindowId_LockScreenContainer)
51 return root->GetChildByShellWindowId(kShellWindowId_SystemModalContainer); 51 return root->GetChildByShellWindowId(kShellWindowId_SystemModalContainer);
52 return root->GetChildByShellWindowId(kShellWindowId_LockSystemModalContainer); 52 return root->GetChildByShellWindowId(kShellWindowId_LockSystemModalContainer);
53 } 53 }
54 54
55 WmWindow* GetContainerFromAlwaysOnTopController(WmWindow* root, 55 WmWindow* GetContainerFromAlwaysOnTopController(WmWindow* root,
56 WmWindow* window) { 56 WmWindow* window) {
57 return root->GetRootWindowController() 57 return root->GetRootWindowController()
58 ->always_on_top_controller() 58 ->always_on_top_controller()
59 ->GetContainer(window); 59 ->GetContainer(window);
60 } 60 }
61 61
62 } // namespace 62 } // namespace
63 63
64 WmWindow* GetContainerForWindow(WmWindow* window) { 64 WmWindow* GetContainerForWindow(WmWindow* window) {
65 WmWindow* parent = window->GetParent(); 65 WmWindow* parent = window->GetParent();
66 // The first parent with an explicit shell window ID is the container. 66 // The first parent with an explicit shell window ID is the container.
67 while (parent && parent->GetShellWindowId() == kShellWindowId_Invalid) 67 while (parent && parent->aura_window()->id() == kShellWindowId_Invalid)
68 parent = parent->GetParent(); 68 parent = parent->GetParent();
69 return parent; 69 return parent;
70 } 70 }
71 71
72 WmWindow* GetDefaultParent(WmWindow* window, const gfx::Rect& bounds) { 72 WmWindow* GetDefaultParent(WmWindow* window, const gfx::Rect& bounds) {
73 WmWindow* target_root = nullptr; 73 WmWindow* target_root = nullptr;
74 WmWindow* transient_parent = window->GetTransientParent(); 74 WmWindow* transient_parent = window->GetTransientParent();
75 if (transient_parent) { 75 if (transient_parent) {
76 // Transient window should use the same root as its transient parent. 76 // Transient window should use the same root as its transient parent.
77 target_root = transient_parent->GetRootWindow(); 77 target_root = transient_parent->GetRootWindow();
(...skipping 16 matching lines...) Expand all
94 if (window->aura_window()->GetProperty(kPanelAttachedKey)) 94 if (window->aura_window()->GetProperty(kPanelAttachedKey))
95 return target_root->GetChildByShellWindowId( 95 return target_root->GetChildByShellWindowId(
96 kShellWindowId_PanelContainer); 96 kShellWindowId_PanelContainer);
97 return GetContainerFromAlwaysOnTopController(target_root, window); 97 return GetContainerFromAlwaysOnTopController(target_root, window);
98 case ui::wm::WINDOW_TYPE_MENU: 98 case ui::wm::WINDOW_TYPE_MENU:
99 return target_root->GetChildByShellWindowId(kShellWindowId_MenuContainer); 99 return target_root->GetChildByShellWindowId(kShellWindowId_MenuContainer);
100 case ui::wm::WINDOW_TYPE_TOOLTIP: 100 case ui::wm::WINDOW_TYPE_TOOLTIP:
101 return target_root->GetChildByShellWindowId( 101 return target_root->GetChildByShellWindowId(
102 kShellWindowId_DragImageAndTooltipContainer); 102 kShellWindowId_DragImageAndTooltipContainer);
103 default: 103 default:
104 NOTREACHED() << "Window " << window->GetShellWindowId() 104 NOTREACHED() << "Window " << window->aura_window()->id()
105 << " has unhandled type " << window->GetType(); 105 << " has unhandled type " << window->GetType();
106 break; 106 break;
107 } 107 }
108 return nullptr; 108 return nullptr;
109 } 109 }
110 110
111 aura::Window::Windows GetContainersFromAllRootWindows( 111 aura::Window::Windows GetContainersFromAllRootWindows(
112 int container_id, 112 int container_id,
113 aura::Window* priority_root) { 113 aura::Window* priority_root) {
114 aura::Window::Windows containers; 114 aura::Window::Windows containers;
115 for (aura::Window* root : Shell::GetAllRootWindows()) { 115 for (aura::Window* root : Shell::GetAllRootWindows()) {
116 aura::Window* container = root->GetChildById(container_id); 116 aura::Window* container = root->GetChildById(container_id);
117 if (!container) 117 if (!container)
118 continue; 118 continue;
119 119
120 if (priority_root && priority_root->Contains(container)) 120 if (priority_root && priority_root->Contains(container))
121 containers.insert(containers.begin(), container); 121 containers.insert(containers.begin(), container);
122 else 122 else
123 containers.push_back(container); 123 containers.push_back(container);
124 } 124 }
125 return containers; 125 return containers;
126 } 126 }
127 127
128 } // namespace wm 128 } // namespace wm
129 } // namespace ash 129 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/always_on_top_controller.cc ('k') | ash/wm/container_finder_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698