Index: mojo/examples/embedded_app/embedded_app.cc |
diff --git a/mojo/examples/embedded_app/embedded_app.cc b/mojo/examples/embedded_app/embedded_app.cc |
index 1a620b408b57f8a17804174df1fcfc20723ce62d..ce77c8ec5a6c0d36926a5932e115555dce611271 100644 |
--- a/mojo/examples/embedded_app/embedded_app.cc |
+++ b/mojo/examples/embedded_app/embedded_app.cc |
@@ -88,13 +88,6 @@ class EmbeddedApp : public Application, |
roots_[root->id()] = root; |
ProcessPendingNodeColor(root->id()); |
} |
- virtual void OnRootRemoved(ViewManager* view_manager, Node* root) OVERRIDE { |
- roots_.erase(root->id()); |
- |
- std::map<Node*, View*>::const_iterator it = views_to_reap_.find(root); |
- if (it != views_to_reap_.end()) |
- it->second->Destroy(); |
- } |
// Overridden from ViewObserver: |
virtual void OnViewInputEvent(View* view, const EventPtr& event) OVERRIDE { |
@@ -111,6 +104,17 @@ class EmbeddedApp : public Application, |
if (new_view == 0) |
views_to_reap_[node] = old_view; |
} |
+ virtual void OnNodeDestroy( |
+ Node* node, |
+ NodeObserver::DispositionChangePhase phase) OVERRIDE { |
+ if (phase != NodeObserver::DISPOSITION_CHANGED) |
+ return; |
+ DCHECK(roots_.find(node->id()) != roots_.end()); |
+ roots_.erase(node->id()); |
+ std::map<Node*, View*>::const_iterator it = views_to_reap_.find(node); |
+ if (it != views_to_reap_.end()) |
+ it->second->Destroy(); |
+ } |
void ProcessPendingNodeColor(uint32 node_id) { |
RootMap::iterator root = roots_.find(node_id); |
@@ -130,7 +134,7 @@ class EmbeddedApp : public Application, |
IWindowManagerPtr window_manager_; |
std::map<Node*, View*> views_to_reap_; |
- typedef std::map<uint32, Node*> RootMap; |
+ typedef std::map<view_manager::Id, Node*> RootMap; |
RootMap roots_; |
// We can receive navigations for nodes we don't have yet. |