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

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

Issue 10810039: 2nd display should show the same background as login/lock screen: (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Post-review fix #2 Created 8 years, 5 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/root_window_layout_manager.h" 5 #include "ash/wm/root_window_layout_manager.h"
6 6
7 #include "ash/desktop_background/desktop_background_widget_controller.h"
7 #include "ui/aura/window.h" 8 #include "ui/aura/window.h"
8 #include "ui/compositor/layer.h" 9 #include "ui/compositor/layer.h"
9 #include "ui/views/widget/widget.h" 10 #include "ui/views/widget/widget.h"
10 11
11 namespace ash { 12 namespace ash {
12 namespace internal { 13 namespace internal {
13 14
14 //////////////////////////////////////////////////////////////////////////////// 15 ////////////////////////////////////////////////////////////////////////////////
15 // RootWindowLayoutManager, public: 16 // RootWindowLayoutManager, public:
16 17
17 RootWindowLayoutManager::RootWindowLayoutManager(aura::Window* owner) 18 RootWindowLayoutManager::RootWindowLayoutManager(aura::Window* owner)
18 : owner_(owner), 19 : owner_(owner) {
19 background_widget_(NULL) {
20 } 20 }
21 21
22 RootWindowLayoutManager::~RootWindowLayoutManager() { 22 RootWindowLayoutManager::~RootWindowLayoutManager() {
23 } 23 }
24 24
25 void RootWindowLayoutManager::SetBackgroundWidget(views::Widget* widget) {
26 if (widget == background_widget_)
27 return;
28 // Close now so that the focus manager will be deleted before shutdown.
29 if (background_widget_)
30 background_widget_->CloseNow();
31 background_widget_ = widget;
32 }
33
34 void RootWindowLayoutManager::SetBackgroundLayer(ui::Layer* layer) {
35 background_layer_.reset(layer);
36 }
37 25
38 //////////////////////////////////////////////////////////////////////////////// 26 ////////////////////////////////////////////////////////////////////////////////
39 // RootWindowLayoutManager, aura::LayoutManager implementation: 27 // RootWindowLayoutManager, aura::LayoutManager implementation:
40 28
41 void RootWindowLayoutManager::OnWindowResized() { 29 void RootWindowLayoutManager::OnWindowResized() {
42 gfx::Rect fullscreen_bounds = 30 gfx::Rect fullscreen_bounds =
43 gfx::Rect(owner_->bounds().width(), owner_->bounds().height()); 31 gfx::Rect(owner_->bounds().width(), owner_->bounds().height());
44 32
45 // Resize both our immediate children (the containers-of-containers animated 33 // Resize both our immediate children (the containers-of-containers animated
46 // by PowerButtonController) and their children (the actual containers). 34 // by PowerButtonController) and their children (the actual containers).
47 aura::Window::Windows::const_iterator i; 35 aura::Window::Windows::const_iterator i;
48 for (i = owner_->children().begin(); i != owner_->children().end(); ++i) { 36 for (i = owner_->children().begin(); i != owner_->children().end(); ++i) {
49 (*i)->SetBounds(fullscreen_bounds); 37 (*i)->SetBounds(fullscreen_bounds);
50 aura::Window::Windows::const_iterator j; 38 aura::Window::Windows::const_iterator j;
51 for (j = (*i)->children().begin(); j != (*i)->children().end(); ++j) 39 for (j = (*i)->children().begin(); j != (*i)->children().end(); ++j)
52 (*j)->SetBounds(fullscreen_bounds); 40 (*j)->SetBounds(fullscreen_bounds);
53 } 41 }
54 42 internal::DesktopBackgroundWidgetController* background = owner_->GetProperty(
Nikita (slow) 2012/07/28 01:25:25 Sorry, I wasn't clear enough. This code is more re
Denis Kuznetsov (DE-MUC) 2012/07/30 15:40:02 Done.
55 if (background_widget_) 43 internal::kWindowDesktopComponent);
56 background_widget_->SetBounds(fullscreen_bounds); 44 if (background)
57 if (background_layer_.get()) 45 background->SetBounds(fullscreen_bounds);
58 background_layer_->SetBounds(fullscreen_bounds);
59 } 46 }
60 47
61 void RootWindowLayoutManager::OnWindowAddedToLayout(aura::Window* child) { 48 void RootWindowLayoutManager::OnWindowAddedToLayout(aura::Window* child) {
62 } 49 }
63 50
64 void RootWindowLayoutManager::OnWillRemoveWindowFromLayout( 51 void RootWindowLayoutManager::OnWillRemoveWindowFromLayout(
65 aura::Window* child) { 52 aura::Window* child) {
66 } 53 }
67 54
68 void RootWindowLayoutManager::OnWindowRemovedFromLayout(aura::Window* child) { 55 void RootWindowLayoutManager::OnWindowRemovedFromLayout(aura::Window* child) {
69 } 56 }
70 57
71 void RootWindowLayoutManager::OnChildWindowVisibilityChanged( 58 void RootWindowLayoutManager::OnChildWindowVisibilityChanged(
72 aura::Window* child, 59 aura::Window* child,
73 bool visible) { 60 bool visible) {
74 } 61 }
75 62
76 void RootWindowLayoutManager::SetChildBounds( 63 void RootWindowLayoutManager::SetChildBounds(
77 aura::Window* child, 64 aura::Window* child,
78 const gfx::Rect& requested_bounds) { 65 const gfx::Rect& requested_bounds) {
79 SetChildBoundsDirect(child, requested_bounds); 66 SetChildBoundsDirect(child, requested_bounds);
80 } 67 }
81 68
82 } // namespace internal 69 } // namespace internal
83 } // namespace ash 70 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698