1// Copyright (c) 2013 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/views/widget/widget_deletion_observer.h" 6 7#include "ui/views/widget/widget.h" 8 9namespace views { 10 11WidgetDeletionObserver::WidgetDeletionObserver(Widget* widget) 12 : widget_(widget) { 13 if (widget_) 14 widget_->AddObserver(this); 15} 16 17WidgetDeletionObserver::~WidgetDeletionObserver() { 18 CleanupWidget(); 19} 20 21void WidgetDeletionObserver::OnWidgetDestroying(Widget* widget) { 22 CleanupWidget(); 23} 24 25void WidgetDeletionObserver::CleanupWidget() { 26 if (widget_) { 27 widget_->RemoveObserver(this); 28 widget_ = NULL; 29 } 30} 31 32} // namespace views 33