Index: athena/activity/activity_view_manager_impl.cc |
diff --git a/athena/activity/activity_view_manager_impl.cc b/athena/activity/activity_view_manager_impl.cc |
index 3dc8c7cf5b1f71b17a7ba03d7801203ac8246f68..7f6eed8b8ad426d3e46d525f598320bcaafc3af1 100644 |
--- a/athena/activity/activity_view_manager_impl.cc |
+++ b/athena/activity/activity_view_manager_impl.cc |
@@ -29,7 +29,6 @@ views::Widget* CreateWidget(Activity* activity) { |
params.delegate = new ActivityWidgetDelegate(view_model); |
params.activatable = views::Widget::InitParams::ACTIVATABLE_YES; |
widget->Init(params); |
- activity->GetActivityViewModel()->Init(); |
return widget; |
} |
@@ -57,6 +56,10 @@ class ActivityViewManagerImpl : public ActivityViewManager, |
container->UpdateWindowTitle(); |
container->Show(); |
container->Activate(); |
+ // Call the Activity model's initializer. It might re-order the activity |
+ // against others, which has to be done before before registering it to the |
+ // system. |
+ activity->GetActivityViewModel()->Init(); |
} |
virtual void RemoveActivity(Activity* activity) OVERRIDE { |
@@ -81,7 +84,7 @@ class ActivityViewManagerImpl : public ActivityViewManager, |
iter != activity_widgets_.end(); |
++iter) { |
if (iter->second == widget) { |
- delete iter->first; |
+ Activity::Delete(iter->first); |
break; |
} |
} |