Chromium Code Reviews| Index: ui/aura/scoped_window_targeter.cc |
| diff --git a/ui/aura/scoped_window_targeter.cc b/ui/aura/scoped_window_targeter.cc |
| index 96355246245a856c91340faba0edee0b7e11a572..4a704d33a3fe3bf0003653f08e264046a7cda063 100644 |
| --- a/ui/aura/scoped_window_targeter.cc |
| +++ b/ui/aura/scoped_window_targeter.cc |
| @@ -13,15 +13,19 @@ ScopedWindowTargeter::ScopedWindowTargeter( |
| scoped_ptr<ui::EventTargeter> new_targeter) |
| : window_(window), |
| old_targeter_(window->SetEventTargeter(new_targeter.Pass())) { |
| + window_->AddObserver(this); |
| } |
| ScopedWindowTargeter::~ScopedWindowTargeter() { |
| - if (window_) |
| + if (window_) { |
| + window_->RemoveObserver(this); |
| window_->SetEventTargeter(old_targeter_.Pass()); |
| + } |
| } |
| void ScopedWindowTargeter::OnWindowDestroyed(Window* window) { |
| CHECK_EQ(window_, window); |
| + window_->RemoveObserver(this); |
|
Jun Mukai
2014/07/25 20:24:00
aura::Window destructor removes the observer right
pkotwicz
2014/07/25 20:31:20
You're right. Thanks for letting me know!
|
| window_ = NULL; |
| old_targeter_.reset(); |
| } |