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

Unified Diff: ash/common/wm/root_window_layout_manager.cc

Issue 2786563003: Add a NOT_DRAWN window in between the root_window and its children. (Closed)
Patch Set: Rename container and add depth to resize window. 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | ash/public/cpp/shell_window_ids.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/common/wm/root_window_layout_manager.cc
diff --git a/ash/common/wm/root_window_layout_manager.cc b/ash/common/wm/root_window_layout_manager.cc
index 15ec3fbfaaa0219b4aa5d078c9da5d5a12fa3be3..26d4caf0c429fc3c5c17f081df5aa4784d29f544 100644
--- a/ash/common/wm/root_window_layout_manager.cc
+++ b/ash/common/wm/root_window_layout_manager.cc
@@ -9,25 +9,19 @@
#include "ui/aura/window_tracker.h"
namespace ash {
-namespace wm {
-
-////////////////////////////////////////////////////////////////////////////////
-// RootWindowLayoutManager, public:
-RootWindowLayoutManager::RootWindowLayoutManager(WmWindow* owner)
- : owner_(owner) {}
+namespace {
-RootWindowLayoutManager::~RootWindowLayoutManager() {}
-
-////////////////////////////////////////////////////////////////////////////////
-// RootWindowLayoutManager, aura::LayoutManager implementation:
-
-void RootWindowLayoutManager::OnWindowResized() {
- const gfx::Rect fullscreen_bounds = gfx::Rect(owner_->GetBounds().size());
+void ResizeWindow(const aura::Window::Windows& children,
+ const gfx::Rect& fullscreen_bounds,
+ int depth) {
+ // Stop to prevent resizing non top level window such as tooltip.
+ if (depth > 3)
+ return;
oshima 2017/04/06 16:34:15 I think this is ok in this CL, but we should make
wutao 2017/04/08 02:07:10 Acknowledged.
// Resize both our immediate children (the containers-of-containers animated
// by PowerButtonController) and their children (the actual containers).
- aura::WindowTracker children_tracker(owner_->aura_window()->children());
+ aura::WindowTracker children_tracker(children);
while (!children_tracker.windows().empty()) {
aura::Window* child = children_tracker.Pop();
// Skip descendants of top-level windows, i.e. only resize containers and
@@ -36,15 +30,30 @@ void RootWindowLayoutManager::OnWindowResized() {
continue;
child->SetBounds(fullscreen_bounds);
- aura::WindowTracker grandchildren_tracker(child->children());
- while (!grandchildren_tracker.windows().empty()) {
- child = grandchildren_tracker.Pop();
- if (!child->GetToplevelWindow())
- child->SetBounds(fullscreen_bounds);
- }
+ ResizeWindow(child->children(), fullscreen_bounds, depth + 1);
oshima 2017/04/06 16:34:15 can you define child_depth instead of adding every
wutao 2017/04/08 02:07:10 Done.
}
}
+} // namespace
+
+namespace wm {
+
+////////////////////////////////////////////////////////////////////////////////
+// RootWindowLayoutManager, public:
+
+RootWindowLayoutManager::RootWindowLayoutManager(WmWindow* owner)
+ : owner_(owner) {}
+
+RootWindowLayoutManager::~RootWindowLayoutManager() {}
+
+////////////////////////////////////////////////////////////////////////////////
+// RootWindowLayoutManager, aura::LayoutManager implementation:
+
+void RootWindowLayoutManager::OnWindowResized() {
+ ResizeWindow(owner_->aura_window()->children(),
+ gfx::Rect(owner_->GetBounds().size()), 1);
oshima 2017/04/06 16:34:15 optional: it's probably easier for us to start wit
wutao 2017/04/08 02:07:10 Done.
+}
+
void RootWindowLayoutManager::OnWindowAddedToLayout(WmWindow* child) {}
void RootWindowLayoutManager::OnWillRemoveWindowFromLayout(WmWindow* child) {}
« no previous file with comments | « no previous file | ash/public/cpp/shell_window_ids.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698