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.
4
5#include "ui/aura/client/stacking_client.h"
6
7#include "ui/aura/env.h"
8#include "ui/aura/root_window.h"
9#include "ui/aura/window_property.h"
10
11DECLARE_WINDOW_PROPERTY_TYPE(aura::client::StackingClient*)
12
13namespace aura {
14namespace client {
15
16DEFINE_WINDOW_PROPERTY_KEY(
17    StackingClient*, kRootWindowStackingClientKey, NULL);
18
19void SetStackingClient(Window* window, StackingClient* stacking_client) {
20  DCHECK(window);
21
22  RootWindow* root_window = window->GetRootWindow();
23  DCHECK(root_window);
24  root_window->SetProperty(kRootWindowStackingClientKey, stacking_client);
25}
26
27StackingClient* GetStackingClient(Window* window) {
28  DCHECK(window);
29  RootWindow* root_window = window->GetRootWindow();
30  DCHECK(root_window);
31  StackingClient* root_window_stacking_client =
32      root_window->GetProperty(kRootWindowStackingClientKey);
33  DCHECK(root_window_stacking_client);
34  return root_window_stacking_client;
35}
36
37}  // namespace client
38}  // namespace aura
39