146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// found in the LICENSE file.
446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "ui/aura/window_observer.h"
646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "base/logging.h"
846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "ui/aura/window.h"
946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
1046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace aura {
1146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
1246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)WindowObserver::WindowObserver() : observing_(0) {
1346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}
1446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
1546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)WindowObserver::~WindowObserver() {
1646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  // TODO(flackr): Remove this check and observing_ counter when the cause of
1746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  // http://crbug.com/365364 is discovered.
1846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  CHECK_EQ(0, observing_);
1946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}
2046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
2146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)void WindowObserver::OnObservingWindow(aura::Window* window) {
2246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  if (!window->HasObserver(this))
2346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    observing_++;
2446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}
2546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
2646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)void WindowObserver::OnUnobservingWindow(aura::Window* window) {
2746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  if (window->HasObserver(this))
2846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    observing_--;
2946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}
3046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
3146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}  // namespace aura
32