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..d71e9193df9bf39f8cb6f08ad1b26e5ba3ca9eb2 100644 |
--- a/ui/aura/scoped_window_targeter.cc |
+++ b/ui/aura/scoped_window_targeter.cc |
@@ -13,11 +13,14 @@ 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) { |