Index: athena/content/app_activity_proxy.cc |
diff --git a/athena/content/app_activity_proxy.cc b/athena/content/app_activity_proxy.cc |
index 2625ab7e05a4091bd50cb2e3935988e832e465f0..60822d3df180d2ee7165f2b2ab3b8062b44aa62f 100644 |
--- a/athena/content/app_activity_proxy.cc |
+++ b/athena/content/app_activity_proxy.cc |
@@ -4,24 +4,23 @@ |
#include "athena/content/app_activity_proxy.h" |
+#include "athena/content/app_activity.h" |
#include "athena/content/app_activity_registry.h" |
#include "athena/wm/public/window_list_provider.h" |
#include "athena/wm/public/window_manager.h" |
#include "ui/aura/window.h" |
#include "ui/views/view.h" |
#include "ui/views/widget/widget.h" |
+#include "ui/wm/core/window_util.h" |
namespace athena { |
-AppActivityProxy::AppActivityProxy(Activity* replaced_activity, |
+AppActivityProxy::AppActivityProxy(AppActivity* replaced_activity, |
AppActivityRegistry* creator) : |
app_activity_registry_(creator), |
title_(replaced_activity->GetActivityViewModel()->GetTitle()), |
- image_(replaced_activity->GetActivityViewModel()->GetOverviewModeImage()), |
color_(replaced_activity->GetActivityViewModel()->GetRepresentativeColor()), |
replaced_activity_(replaced_activity), |
- // TODO(skuhne): We probably need to do something better with the view |
- // (e.g. showing the passed image / layer). |
view_(new views::View()) { |
} |
@@ -60,11 +59,18 @@ aura::Window* AppActivityProxy::GetWindow() { |
void AppActivityProxy::Init() { |
DCHECK(replaced_activity_); |
+ // Get the content proxy to present the content. |
+ content_proxy_ = replaced_activity_->GetContentProxy(GetWindow()); |
WindowListProvider* window_list_provider = |
WindowManager::GetInstance()->GetWindowListProvider(); |
window_list_provider->StackWindowBehindTo(GetWindow(), |
replaced_activity_->GetWindow()); |
- // We moved. |
+ // Creating this object was moving the activation to this window which should |
+ // not be the active window. As such we re-activate the top activity window. |
+ // TODO(skuhne): This should possibly move to the WindowListProvider. |
+ wm::ActivateWindow(window_list_provider->GetWindowList().back()); |
sadrul
2014/09/12 16:30:14
Why does calling StackWindowBehindTo() change acti
Mr4D (OOO till 08-26)
2014/09/12 20:11:26
It's not that. When the resource manager unloads a
oshima
2014/09/15 16:37:11
Widget::ShowInactive?
|
+ // After the Init() function returns, the passed |replaced_activity_| might |
+ // get destroyed. Since we do not need it anymore we reset it. |
replaced_activity_ = NULL; |
} |
@@ -92,12 +98,8 @@ views::Widget* AppActivityProxy::CreateWidget() { |
return NULL; |
} |
-void AppActivityProxy::CreateOverviewModeImage() { |
- // Nothing we can do here. |
-} |
- |
gfx::ImageSkia AppActivityProxy::GetOverviewModeImage() { |
- return image_; |
+ return content_proxy_->GetContentImage(); |
} |
void AppActivityProxy::PrepareContentsForOverview() { |