view_tracker.cc 592 B

1234567891011121314151617181920212223242526272829
  1. // Copyright 2017 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. #include "ui/views/view_tracker.h"
  5. namespace views {
  6. ViewTracker::ViewTracker(View* view) {
  7. SetView(view);
  8. }
  9. ViewTracker::~ViewTracker() = default;
  10. void ViewTracker::SetView(View* view) {
  11. if (view == view_)
  12. return;
  13. observation_.Reset();
  14. view_ = view;
  15. if (view_)
  16. observation_.Observe(view_.get());
  17. }
  18. void ViewTracker::OnViewIsDeleting(View* observed_view) {
  19. SetView(nullptr);
  20. }
  21. } // namespace views