Index: mojo/examples/browser/browser.cc |
diff --git a/mojo/examples/browser/browser.cc b/mojo/examples/browser/browser.cc |
index 1474556d6044f46acf2006a5204eed44a375e30b..ac6f5f1dd1da4d12ecbcae5b9ed982dc3fa2ef82 100644 |
--- a/mojo/examples/browser/browser.cc |
+++ b/mojo/examples/browser/browser.cc |
@@ -205,6 +205,12 @@ class Browser : public ApplicationDelegate, |
root_->SetFocus(); |
CreateWidget(root_); |
} |
+ virtual void OnViewManagerDisconnected( |
+ view_manager::ViewManager* view_manager) OVERRIDE { |
+ DCHECK_EQ(view_manager_, view_manager); |
+ view_manager_ = NULL; |
+ base::MessageLoop::current()->Quit(); |
+ } |
// views::TextfieldController: |
virtual bool HandleKeyEvent(views::Textfield* sender, |
@@ -232,6 +238,10 @@ class Browser : public ApplicationDelegate, |
else if (gained_focus == root_) |
focus_client->FocusWindow(widget_->GetNativeView()); |
} |
+ virtual void OnNodeDestroyed(view_manager::Node* node) OVERRIDE { |
+ DCHECK_EQ(root_, node); |
+ node->RemoveObserver(this); |
+ } |
scoped_ptr<ViewsInit> views_init_; |