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

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: 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 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') | ash/root_window_controller.cc » ('J')
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..77ba63c45cf7c5da3c23b3c9c88c23bf99ba870e 100644
--- a/ash/common/wm/root_window_layout_manager.cc
+++ b/ash/common/wm/root_window_layout_manager.cc
@@ -9,6 +9,28 @@
#include "ui/aura/window_tracker.h"
namespace ash {
+
+namespace {
+
+void ResizeWindow(const aura::Window::Windows& children,
+ const gfx::Rect& fullscreen_bounds) {
+ // Resize both our immediate children (the containers-of-containers animated
+ // by PowerButtonController) and their children (the actual containers).
+ 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
+ // other windows without a delegate, such as ScreenDimmer windows.
+ if (child->GetToplevelWindow())
+ continue;
+
+ child->SetBounds(fullscreen_bounds);
+ ResizeWindow(child->children(), fullscreen_bounds);
oshima 2017/04/05 20:26:51 I don't think this is right. There may be non top
wutao 2017/04/05 23:37:34 I will add a third parameter |depth| and return if
+ }
+}
+
+} // namespace
+
namespace wm {
////////////////////////////////////////////////////////////////////////////////
@@ -23,26 +45,8 @@ RootWindowLayoutManager::~RootWindowLayoutManager() {}
// RootWindowLayoutManager, aura::LayoutManager implementation:
void RootWindowLayoutManager::OnWindowResized() {
- const gfx::Rect fullscreen_bounds = gfx::Rect(owner_->GetBounds().size());
-
- // 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());
- while (!children_tracker.windows().empty()) {
- aura::Window* child = children_tracker.Pop();
- // Skip descendants of top-level windows, i.e. only resize containers and
- // other windows without a delegate, such as ScreenDimmer windows.
- if (child->GetToplevelWindow())
- 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(owner_->aura_window()->children(),
+ gfx::Rect(owner_->GetBounds().size()));
}
void RootWindowLayoutManager::OnWindowAddedToLayout(WmWindow* child) {}
« no previous file with comments | « no previous file | ash/public/cpp/shell_window_ids.h » ('j') | ash/root_window_controller.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698