Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(22)

Side by Side Diff: win8/metro_driver/chrome_app_view_ash.cc

Issue 235933004: 3rd part of porting Chrome Ash to Windows 7 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ash_unittests fixes Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ui/gfx/win/dpi.cc ('k') | win8/metro_driver/metro_driver_win7.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "win8/metro_driver/stdafx.h" 5 #include "win8/metro_driver/stdafx.h"
6 #include "win8/metro_driver/chrome_app_view_ash.h" 6 #include "win8/metro_driver/chrome_app_view_ash.h"
7 7
8 #include <corewindow.h> 8 #include <corewindow.h>
9 #include <shellapi.h> 9 #include <shellapi.h>
10 #include <windows.foundation.h> 10 #include <windows.foundation.h>
(...skipping 901 matching lines...) Expand 10 before | Expand all | Expand 10 after
912 NOTREACHED() << "unknown event type: " << event; 912 NOTREACHED() << "unknown event type: " << event;
913 return; 913 return;
914 } 914 }
915 } 915 }
916 916
917 // Function to Exit metro chrome cleanly. If we are in the foreground 917 // Function to Exit metro chrome cleanly. If we are in the foreground
918 // then we try and exit by sending an Alt+F4 key combination to the core 918 // then we try and exit by sending an Alt+F4 key combination to the core
919 // window which ensures that the chrome application tile does not show up in 919 // window which ensures that the chrome application tile does not show up in
920 // the running metro apps list on the top left corner. 920 // the running metro apps list on the top left corner.
921 void ChromeAppViewAsh::OnMetroExit(MetroTerminateMethod method) { 921 void ChromeAppViewAsh::OnMetroExit(MetroTerminateMethod method) {
922 HWND core_window = core_window_hwnd(); 922 if (base::win::GetVersion() >= base::win::VERSION_WIN8) {
923 if (method == TERMINATE_USING_KEY_SEQUENCE && core_window != NULL && 923 HWND core_window = core_window_hwnd();
924 core_window == ::GetForegroundWindow()) { 924 if (method == TERMINATE_USING_KEY_SEQUENCE && core_window != NULL &&
925 DVLOG(1) << "We are in the foreground. Exiting via Alt F4"; 925 core_window == ::GetForegroundWindow()) {
926 SendKeySequence(VK_F4, ALT); 926 DVLOG(1) << "We are in the foreground. Exiting via Alt F4";
927 if (ui_channel_) 927 SendKeySequence(VK_F4, ALT);
928 ui_channel_->Close(); 928 }
929 } else {
930 globals.app_exit->Exit();
931 } 929 }
930 if (ui_channel_)
931 ui_channel_->Close();
932
933 globals.app_exit->Exit();
932 } 934 }
933 935
934 void ChromeAppViewAsh::OnInputSourceChanged() { 936 void ChromeAppViewAsh::OnInputSourceChanged() {
935 if (!input_source_) 937 if (!input_source_)
936 return; 938 return;
937 939
938 LANGID langid = 0; 940 LANGID langid = 0;
939 bool is_ime = false; 941 bool is_ime = false;
940 if (!input_source_->GetActiveSource(&langid, &is_ime)) { 942 if (!input_source_->GetActiveSource(&langid, &is_ime)) {
941 LOG(ERROR) << "GetActiveSource failed"; 943 LOG(ERROR) << "GetActiveSource failed";
(...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after
1347 mswr::ComPtr<winapp::Core::ICoreApplicationExit> app_exit; 1349 mswr::ComPtr<winapp::Core::ICoreApplicationExit> app_exit;
1348 CheckHR(core_app.As(&app_exit)); 1350 CheckHR(core_app.As(&app_exit));
1349 globals.app_exit = app_exit.Detach(); 1351 globals.app_exit = app_exit.Detach();
1350 } 1352 }
1351 1353
1352 IFACEMETHODIMP 1354 IFACEMETHODIMP
1353 ChromeAppViewFactory::CreateView(winapp::Core::IFrameworkView** view) { 1355 ChromeAppViewFactory::CreateView(winapp::Core::IFrameworkView** view) {
1354 *view = mswr::Make<ChromeAppViewAsh>().Detach(); 1356 *view = mswr::Make<ChromeAppViewAsh>().Detach();
1355 return (*view) ? S_OK : E_OUTOFMEMORY; 1357 return (*view) ? S_OK : E_OUTOFMEMORY;
1356 } 1358 }
OLDNEW
« no previous file with comments | « ui/gfx/win/dpi.cc ('k') | win8/metro_driver/metro_driver_win7.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698