1// Copyright 2014 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/scoped_window_targeter.h" 6 7#include "ui/aura/window.h" 8 9namespace aura { 10 11ScopedWindowTargeter::ScopedWindowTargeter( 12 Window* window, 13 scoped_ptr<ui::EventTargeter> new_targeter) 14 : window_(window), 15 old_targeter_(window->SetEventTargeter(new_targeter.Pass())) { 16 window_->AddObserver(this); 17} 18 19ScopedWindowTargeter::~ScopedWindowTargeter() { 20 if (window_) { 21 window_->RemoveObserver(this); 22 window_->SetEventTargeter(old_targeter_.Pass()); 23 } 24} 25 26void ScopedWindowTargeter::OnWindowDestroyed(Window* window) { 27 CHECK_EQ(window_, window); 28 window_ = NULL; 29 old_targeter_.reset(); 30} 31 32} // namespace aura 33