// Copyright (c) 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "ui/views/widget/widget_deletion_observer.h"

#include "ui/views/widget/widget.h"

namespace views {

WidgetDeletionObserver::WidgetDeletionObserver(Widget* widget)
    : widget_(widget) {
  if (widget_)
    widget_->AddObserver(this);
}

WidgetDeletionObserver::~WidgetDeletionObserver() {
  CleanupWidget();
}

void WidgetDeletionObserver::OnWidgetDestroying(Widget* widget) {
  CleanupWidget();
}

void WidgetDeletionObserver::CleanupWidget() {
  if (widget_) {
    widget_->RemoveObserver(this);
    widget_ = NULL;
  }
}

}  // namespace views
