Index: win8/metro_driver/chrome_app_view_ash.cc |
diff --git a/win8/metro_driver/chrome_app_view_ash.cc b/win8/metro_driver/chrome_app_view_ash.cc |
index cffb0432638f553c9439a6da5d3e236c423ec5a5..b795b928bc2cc878057c38ce5ee372fd66c2bf37 100644 |
--- a/win8/metro_driver/chrome_app_view_ash.cc |
+++ b/win8/metro_driver/chrome_app_view_ash.cc |
@@ -50,10 +50,6 @@ typedef winfoundtn::ITypedEventHandler< |
typedef winfoundtn::ITypedEventHandler< |
winui::Core::CoreWindow*, |
- winui::Core::VisibilityChangedEventArgs*> VisibilityChangedHandler; |
- |
-typedef winfoundtn::ITypedEventHandler< |
- winui::Core::CoreWindow*, |
winui::Core::WindowActivatedEventArgs*> WindowActivatedHandler; |
typedef winfoundtn::ITypedEventHandler< |
@@ -422,11 +418,6 @@ ChromeAppViewAsh::SetWindow(winui::Core::ICoreWindow* window) { |
&character_received_token_); |
CheckHR(hr); |
- hr = window_->add_VisibilityChanged(mswr::Callback<VisibilityChangedHandler>( |
- this, &ChromeAppViewAsh::OnVisibilityChanged).Get(), |
- &visibility_changed_token_); |
- CheckHR(hr); |
- |
hr = window_->add_Activated(mswr::Callback<WindowActivatedHandler>( |
this, &ChromeAppViewAsh::OnWindowActivated).Get(), |
&window_activated_token_); |
@@ -880,18 +871,6 @@ HRESULT ChromeAppViewAsh::OnCharacterReceived( |
return S_OK; |
} |
-HRESULT ChromeAppViewAsh::OnVisibilityChanged( |
- winui::Core::ICoreWindow* sender, |
- winui::Core::IVisibilityChangedEventArgs* args) { |
- boolean visible = false; |
- HRESULT hr = args->get_Visible(&visible); |
- if (FAILED(hr)) |
- return hr; |
- |
- ui_channel_->Send(new MetroViewerHostMsg_VisibilityChanged(!!visible)); |
- return S_OK; |
-} |
- |
HRESULT ChromeAppViewAsh::OnWindowActivated( |
winui::Core::ICoreWindow* sender, |
winui::Core::IWindowActivatedEventArgs* args) { |
@@ -899,6 +878,14 @@ HRESULT ChromeAppViewAsh::OnWindowActivated( |
HRESULT hr = args->get_WindowActivationState(&state); |
if (FAILED(hr)) |
return hr; |
+ |
+ // Treat both full activation (Ash was reopened from the Start Screen or from |
+ // any other Metro entry point in Windows) and pointer activation (user |
+ // clicked back in Ash after using another app on another monitor) the same. |
+ if (state == winui::Core::CoreWindowActivationState_CodeActivated || |
+ state == winui::Core::CoreWindowActivationState_PointerActivated) { |
+ ui_channel_->Send(new MetroViewerHostMsg_WindowActivated()); |
+ } |
return S_OK; |
} |