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

Unified Diff: ash/wm/root_window_layout_manager.cc

Issue 2786563003: Add a NOT_DRAWN window in between the root_window and its children. (Closed)
Patch Set: Fix nits in patch 5. 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 | « ash/rotator/screen_rotation_animator.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/wm/root_window_layout_manager.cc
diff --git a/ash/wm/root_window_layout_manager.cc b/ash/wm/root_window_layout_manager.cc
index aa7301dd06d485d8d2cf4afb2c37114d9f47cc09..55cce76ad490e025b6ae86d33610e03059093fcf 100644
--- a/ash/wm/root_window_layout_manager.cc
+++ b/ash/wm/root_window_layout_manager.cc
@@ -9,25 +9,20 @@
#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 > 2)
+ return;
sadrul 2017/04/14 05:52:44 This doesn't make sense. Why not check to see if t
oshima 2017/04/14 06:52:15 This is equivalent to what current code does. This
sadrul 2017/04/14 17:00:58 OK. I guess checking 'window->GetTopLevelWindow()
oshima 2017/04/14 17:28:45 You're righ. I'll talk to wutao and we'll update t
wutao 2017/04/14 17:56:21 Comments are updated.
// 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());
+ const int child_depth = depth + 1;
+ 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 +31,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, child_depth);
}
}
+} // 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()), 0);
+}
+
void RootWindowLayoutManager::OnWindowAddedToLayout(WmWindow* child) {}
void RootWindowLayoutManager::OnWillRemoveWindowFromLayout(WmWindow* child) {}
« no previous file with comments | « ash/rotator/screen_rotation_animator.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698