Disable TabDragController tests that fail with a real compositor.
[chromium-blink-merge.git] / ash / wm / system_background_controller.cc
blob7e4054e1378ca570c3b3ed749d94c36b8b722edb
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
3 // found in the LICENSE file.
5 #include "ash/wm/system_background_controller.h"
7 #include "ui/aura/window.h"
8 #include "ui/compositor/layer.h"
9 #include "ui/compositor/layer_type.h"
11 namespace ash {
12 namespace internal {
14 SystemBackgroundController::SystemBackgroundController(
15 aura::Window* root_window,
16 SkColor color)
17 : root_window_(root_window),
18 layer_(new ui::Layer(ui::LAYER_SOLID_COLOR)) {
19 root_window_->AddObserver(this);
20 layer_->SetColor(color);
22 ui::Layer* root_layer = root_window_->layer();
23 layer_->SetBounds(gfx::Rect(root_layer->bounds().size()));
24 root_layer->Add(layer_.get());
25 root_layer->StackAtBottom(layer_.get());
28 SystemBackgroundController::~SystemBackgroundController() {
29 root_window_->RemoveObserver(this);
32 void SystemBackgroundController::SetColor(SkColor color) {
33 layer_->SetColor(color);
36 void SystemBackgroundController::OnWindowBoundsChanged(
37 aura::Window* root,
38 const gfx::Rect& old_bounds,
39 const gfx::Rect& new_bounds) {
40 DCHECK_EQ(root_window_, root);
41 layer_->SetBounds(gfx::Rect(root_window_->layer()->bounds().size()));
44 } // namespace internal
45 } // namespace ash