summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ash/accelerators/accelerator_controller.cc21
-rw-r--r--ash/accelerators/accelerator_controller_unittest.cc12
-rw-r--r--ash/accelerators/accelerator_table.cc8
-rw-r--r--ash/accelerators/accelerator_table.h3
-rw-r--r--ash/shell/shell_delegate_impl.cc9
-rw-r--r--ash/shell/shell_delegate_impl.h3
-rw-r--r--ash/shell_delegate.h9
-rw-r--r--ash/test/test_shell_delegate.cc9
-rw-r--r--ash/test/test_shell_delegate.h3
-rw-r--r--chrome/browser/sessions/tab_restore_service.cc4
-rw-r--r--chrome/browser/sessions/tab_restore_service.h3
-rw-r--r--chrome/browser/ui/views/accelerator_table.cc8
-rw-r--r--chrome/browser/ui/views/ash/chrome_shell_delegate.cc36
-rw-r--r--chrome/browser/ui/views/ash/chrome_shell_delegate.h3
-rw-r--r--chrome/browser/ui/views/toolbar_view.cc15
15 files changed, 138 insertions, 8 deletions
diff --git a/ash/accelerators/accelerator_controller.cc b/ash/accelerators/accelerator_controller.cc
index df8ce13..fa81927 100644
--- a/ash/accelerators/accelerator_controller.cc
+++ b/ash/accelerators/accelerator_controller.cc
@@ -81,6 +81,11 @@ bool HandleExit() {
return true;
}
+bool HandleNewTab() {
+ ash::Shell::GetInstance()->delegate()->NewTab();
+ return true;
+}
+
bool HandleNewWindow(bool is_incognito) {
ash::ShellDelegate* delegate = ash::Shell::GetInstance()->delegate();
if (!delegate)
@@ -89,6 +94,16 @@ bool HandleNewWindow(bool is_incognito) {
return true;
}
+bool HandleRestoreTab() {
+ ash::Shell::GetInstance()->delegate()->RestoreTab();
+ return true;
+}
+
+bool HandleShowTaskManager() {
+ ash::Shell::GetInstance()->delegate()->ShowTaskManager();
+ return true;
+}
+
// Rotates the default window container.
bool HandleRotateWindows() {
aura::Window* target = ash::Shell::GetInstance()->GetContainer(
@@ -315,8 +330,12 @@ bool AcceleratorController::AcceleratorPressed(
return HandleExit();
case NEW_INCOGNITO_WINDOW:
return HandleNewWindow(true /* is_incognito */);
+ case NEW_TAB:
+ return HandleNewTab();
case NEW_WINDOW:
return HandleNewWindow(false /* is_incognito */);
+ case RESTORE_TAB:
+ return HandleRestoreTab();
case TAKE_SCREENSHOT:
if (screenshot_delegate_.get()) {
aura::RootWindow* root_window = Shell::GetPrimaryRootWindow();
@@ -379,6 +398,8 @@ bool AcceleratorController::AcceleratorPressed(
return true;
}
break;
+ case SHOW_TASK_MANAGER:
+ return HandleShowTaskManager();
case NEXT_IME:
if (ime_control_delegate_.get())
return ime_control_delegate_->HandleNextIme();
diff --git a/ash/accelerators/accelerator_controller_unittest.cc b/ash/accelerators/accelerator_controller_unittest.cc
index 67921c3..510e250 100644
--- a/ash/accelerators/accelerator_controller_unittest.cc
+++ b/ash/accelerators/accelerator_controller_unittest.cc
@@ -649,6 +649,10 @@ TEST_F(AcceleratorControllerTest, DISABLED_GlobalAccelerators) {
EXPECT_TRUE(GetController()->Process(
ui::Accelerator(ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN)));
+ // New tab
+ EXPECT_TRUE(GetController()->Process(
+ ui::Accelerator(ui::VKEY_T, ui::EF_SHIFT_DOWN)));
+
// New incognito window
EXPECT_TRUE(GetController()->Process(
ui::Accelerator(ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN)));
@@ -661,6 +665,14 @@ TEST_F(AcceleratorControllerTest, DISABLED_GlobalAccelerators) {
EXPECT_TRUE(GetController()->Process(
ui::Accelerator(ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN)));
#endif
+
+ // Restore tab
+ EXPECT_TRUE(GetController()->Process(
+ ui::Accelerator(ui::VKEY_T, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN)));
+
+ // Show task manager
+ EXPECT_TRUE(GetController()->Process(
+ ui::Accelerator(ui::VKEY_ESCAPE, ui::EF_SHIFT_DOWN)));
}
TEST_F(AcceleratorControllerTest, ImeGlobalAccelerators) {
diff --git a/ash/accelerators/accelerator_table.cc b/ash/accelerators/accelerator_table.cc
index 0800a90..b053241 100644
--- a/ash/accelerators/accelerator_table.cc
+++ b/ash/accelerators/accelerator_table.cc
@@ -38,14 +38,17 @@ const AcceleratorData kAcceleratorData[] = {
{ true, ui::VKEY_Z, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
TOGGLE_SPOKEN_FEEDBACK },
- // When you change the shortcut for NEW_INCOGNITO_WINDOW or NEW_WINDOW,
- // you also need to modify ToolbarView::GetAcceleratorForCommandId() in
+ // When you change the shortcuts for NEW_INCOGNITO_WINDOW, NEW_WINDOW, or
+ // NEW_TAB, you also need to modify
+ // ToolbarView::GetAcceleratorForCommandId() in
// chrome/browser/ui/views/toolbar_view.cc.
{ true, ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN,
NEW_INCOGNITO_WINDOW },
{ true, ui::VKEY_N, ui::EF_CONTROL_DOWN, NEW_WINDOW },
+ { true, ui::VKEY_T, ui::EF_CONTROL_DOWN, NEW_TAB },
{ true, ui::VKEY_F5, ui::EF_SHIFT_DOWN, CYCLE_BACKWARD_LINEAR },
+ { true, ui::VKEY_T, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, RESTORE_TAB },
{ true, ui::VKEY_F5, ui::EF_CONTROL_DOWN, TAKE_SCREENSHOT },
{ true, ui::VKEY_F5, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN,
TAKE_PARTIAL_SCREENSHOT },
@@ -70,6 +73,7 @@ const AcceleratorData kAcceleratorData[] = {
ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
SHOW_KEYBOARD_OVERLAY },
{ true, ui::VKEY_F1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, SHOW_OAK },
+ { true, ui::VKEY_ESCAPE, ui::EF_SHIFT_DOWN, SHOW_TASK_MANAGER },
{ true, ui::VKEY_1, ui::EF_ALT_DOWN, SELECT_WIN_0 },
{ true, ui::VKEY_2, ui::EF_ALT_DOWN, SELECT_WIN_1 },
{ true, ui::VKEY_3, ui::EF_ALT_DOWN, SELECT_WIN_2 },
diff --git a/ash/accelerators/accelerator_table.h b/ash/accelerators/accelerator_table.h
index 922cef4..ef8e234 100644
--- a/ash/accelerators/accelerator_table.h
+++ b/ash/accelerators/accelerator_table.h
@@ -24,9 +24,11 @@ enum AcceleratorAction {
FOCUS_LAUNCHER,
FOCUS_TRAY,
NEW_INCOGNITO_WINDOW,
+ NEW_TAB,
NEW_WINDOW,
NEXT_IME,
PREVIOUS_IME,
+ RESTORE_TAB,
ROTATE_WINDOWS,
SEARCH_KEY,
SELECT_LAST_WIN,
@@ -40,6 +42,7 @@ enum AcceleratorAction {
SELECT_WIN_7,
SHOW_KEYBOARD_OVERLAY,
SHOW_OAK,
+ SHOW_TASK_MANAGER,
SWITCH_IME, // Switch to another IME depending on the accelerator.
TAKE_PARTIAL_SCREENSHOT,
TAKE_SCREENSHOT,
diff --git a/ash/shell/shell_delegate_impl.cc b/ash/shell/shell_delegate_impl.cc
index 957852e..7890551 100644
--- a/ash/shell/shell_delegate_impl.cc
+++ b/ash/shell/shell_delegate_impl.cc
@@ -56,6 +56,9 @@ void ShellDelegateImpl::Exit() {
MessageLoopForUI::current()->Quit();
}
+void ShellDelegateImpl::NewTab() {
+}
+
void ShellDelegateImpl::NewWindow(bool incognito) {
ash::shell::ToplevelWindow::CreateParams create_params;
create_params.can_resize = true;
@@ -75,9 +78,15 @@ void ShellDelegateImpl::OpenCrosh() {
void ShellDelegateImpl::OpenMobileSetup() {
}
+void ShellDelegateImpl::RestoreTab() {
+}
+
void ShellDelegateImpl::ShowKeyboardOverlay() {
}
+void ShellDelegateImpl::ShowTaskManager() {
+}
+
content::BrowserContext* ShellDelegateImpl::GetCurrentBrowserContext() {
return Shell::GetInstance()->browser_context();
}
diff --git a/ash/shell/shell_delegate_impl.h b/ash/shell/shell_delegate_impl.h
index 412f20c..3acc893 100644
--- a/ash/shell/shell_delegate_impl.h
+++ b/ash/shell/shell_delegate_impl.h
@@ -28,12 +28,15 @@ class ShellDelegateImpl : public ash::ShellDelegate {
virtual bool IsScreenLocked() const OVERRIDE;
virtual void Shutdown() OVERRIDE;
virtual void Exit() OVERRIDE;
+ virtual void NewTab() OVERRIDE;
virtual void NewWindow(bool incognito) OVERRIDE;
virtual void Search() OVERRIDE;
virtual void OpenFileManager() OVERRIDE;
virtual void OpenCrosh() OVERRIDE;
virtual void OpenMobileSetup() OVERRIDE;
+ virtual void RestoreTab() OVERRIDE;
virtual void ShowKeyboardOverlay() OVERRIDE;
+ virtual void ShowTaskManager() OVERRIDE;
virtual content::BrowserContext* GetCurrentBrowserContext() OVERRIDE;
virtual void ToggleSpokenFeedback() OVERRIDE;
virtual app_list::AppListViewDelegate* CreateAppListViewDelegate() OVERRIDE;
diff --git a/ash/shell_delegate.h b/ash/shell_delegate.h
index 6c1fd96..d57cca3 100644
--- a/ash/shell_delegate.h
+++ b/ash/shell_delegate.h
@@ -59,6 +59,9 @@ class ASH_EXPORT ShellDelegate {
// Invoked when the user uses Ctrl-Shift-Q to close chrome.
virtual void Exit() = 0;
+ // Invoked when the user uses Ctrl+T to open a new tab.
+ virtual void NewTab() = 0;
+
// Invoked when the user uses Ctrl-N or Ctrl-Shift-N to open a new window.
virtual void NewWindow(bool incognito) = 0;
@@ -74,9 +77,15 @@ class ASH_EXPORT ShellDelegate {
// Invoked when the user needs to set up mobile networking.
virtual void OpenMobileSetup() = 0;
+ // Invoked when the user uses Shift+Ctrl+T to restore the closed tab.
+ virtual void RestoreTab() = 0;
+
// Shows the keyboard shortcut overlay.
virtual void ShowKeyboardOverlay() = 0;
+ // Shows the task manager window.
+ virtual void ShowTaskManager() = 0;
+
// Get the current browser context. This will get us the current profile.
virtual content::BrowserContext* GetCurrentBrowserContext() = 0;
diff --git a/ash/test/test_shell_delegate.cc b/ash/test/test_shell_delegate.cc
index 60551b1..82d98112 100644
--- a/ash/test/test_shell_delegate.cc
+++ b/ash/test/test_shell_delegate.cc
@@ -45,6 +45,9 @@ void TestShellDelegate::Shutdown() {
void TestShellDelegate::Exit() {
}
+void TestShellDelegate::NewTab() {
+}
+
void TestShellDelegate::NewWindow(bool incognito) {
}
@@ -60,9 +63,15 @@ void TestShellDelegate::OpenCrosh() {
void TestShellDelegate::OpenMobileSetup() {
}
+void TestShellDelegate::RestoreTab() {
+}
+
void TestShellDelegate::ShowKeyboardOverlay() {
}
+void TestShellDelegate::ShowTaskManager() {
+}
+
content::BrowserContext* TestShellDelegate::GetCurrentBrowserContext() {
return new TestBrowserContext();
}
diff --git a/ash/test/test_shell_delegate.h b/ash/test/test_shell_delegate.h
index edc5941..5ca9759 100644
--- a/ash/test/test_shell_delegate.h
+++ b/ash/test/test_shell_delegate.h
@@ -24,12 +24,15 @@ class TestShellDelegate : public ShellDelegate {
virtual bool IsScreenLocked() const OVERRIDE;
virtual void Shutdown() OVERRIDE;
virtual void Exit() OVERRIDE;
+ virtual void NewTab() OVERRIDE;
virtual void NewWindow(bool incognito) OVERRIDE;
virtual void Search() OVERRIDE;
virtual void OpenFileManager() OVERRIDE;
virtual void OpenCrosh() OVERRIDE;
virtual void OpenMobileSetup() OVERRIDE;
+ virtual void RestoreTab() OVERRIDE;
virtual void ShowKeyboardOverlay() OVERRIDE;
+ virtual void ShowTaskManager() OVERRIDE;
virtual content::BrowserContext* GetCurrentBrowserContext() OVERRIDE;
virtual void ToggleSpokenFeedback() OVERRIDE;
virtual app_list::AppListViewDelegate* CreateAppListViewDelegate() OVERRIDE;
diff --git a/chrome/browser/sessions/tab_restore_service.cc b/chrome/browser/sessions/tab_restore_service.cc
index a6ed52f..dfba1af 100644
--- a/chrome/browser/sessions/tab_restore_service.cc
+++ b/chrome/browser/sessions/tab_restore_service.cc
@@ -474,6 +474,10 @@ void TabRestoreService::LoadTabsFromLastSession() {
&load_consumer_);
}
+bool TabRestoreService::IsLoaded() const {
+ return !(load_state_ & (NOT_LOADED | LOADING));
+}
+
void TabRestoreService::Shutdown() {
if (backend())
Save();
diff --git a/chrome/browser/sessions/tab_restore_service.h b/chrome/browser/sessions/tab_restore_service.h
index f567554..4518170 100644
--- a/chrome/browser/sessions/tab_restore_service.h
+++ b/chrome/browser/sessions/tab_restore_service.h
@@ -180,6 +180,9 @@ class TabRestoreService : public BaseSessionService {
// from the previous session have already been loaded.
void LoadTabsFromLastSession();
+ // Returns true if the tab entries have been loaded.
+ bool IsLoaded() const;
+
// Max number of entries we'll keep around.
static const size_t kMaxEntries;
diff --git a/chrome/browser/ui/views/accelerator_table.cc b/chrome/browser/ui/views/accelerator_table.cc
index 0b85d27..2f27ce0 100644
--- a/chrome/browser/ui/views/accelerator_table.cc
+++ b/chrome/browser/ui/views/accelerator_table.cc
@@ -39,7 +39,7 @@ const AcceleratorMapping kAcceleratorMap[] = {
#if !defined(OS_CHROMEOS)
{ ui::VKEY_F4, ui::EF_ALT_DOWN, IDC_CLOSE_WINDOW },
#endif
-#if !defined(USE_AURA)
+#if !defined(USE_ASH)
{ ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_EXIT },
#endif
{ ui::VKEY_F, ui::EF_CONTROL_DOWN, IDC_FIND },
@@ -98,9 +98,7 @@ const AcceleratorMapping kAcceleratorMap[] = {
#if !defined(USE_ASH)
{ ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN,
IDC_NEW_INCOGNITO_WINDOW },
-#endif
{ ui::VKEY_T, ui::EF_CONTROL_DOWN, IDC_NEW_TAB },
-#if !defined(USE_ASH)
{ ui::VKEY_N, ui::EF_CONTROL_DOWN, IDC_NEW_WINDOW },
#endif
{ ui::VKEY_O, ui::EF_CONTROL_DOWN, IDC_OPEN_FILE },
@@ -119,7 +117,9 @@ const AcceleratorMapping kAcceleratorMap[] = {
{ ui::VKEY_F3, ui::EF_SHIFT_DOWN, IDC_RELOAD_IGNORING_CACHE },
#endif
{ ui::VKEY_HOME, ui::EF_ALT_DOWN, IDC_HOME },
+#if !defined(USE_ASH)
{ ui::VKEY_T, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_RESTORE_TAB },
+#endif
{ ui::VKEY_S, ui::EF_CONTROL_DOWN, IDC_SAVE_PAGE },
{ ui::VKEY_9, ui::EF_CONTROL_DOWN, IDC_SELECT_LAST_TAB },
{ ui::VKEY_NUMPAD9, ui::EF_CONTROL_DOWN, IDC_SELECT_LAST_TAB },
@@ -156,7 +156,9 @@ const AcceleratorMapping kAcceleratorMap[] = {
{ ui::VKEY_M, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_SHOW_AVATAR_MENU},
#endif
{ ui::VKEY_ESCAPE, ui::EF_NONE, IDC_STOP },
+#if !defined(USE_ASH)
{ ui::VKEY_ESCAPE, ui::EF_SHIFT_DOWN, IDC_TASK_MANAGER },
+#endif
{ ui::VKEY_OEM_PERIOD, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN,
IDC_TOGGLE_SPEECH_INPUT },
{ ui::VKEY_U, ui::EF_CONTROL_DOWN, IDC_VIEW_SOURCE },
diff --git a/chrome/browser/ui/views/ash/chrome_shell_delegate.cc b/chrome/browser/ui/views/ash/chrome_shell_delegate.cc
index dba8dc8..fb0c0a4 100644
--- a/chrome/browser/ui/views/ash/chrome_shell_delegate.cc
+++ b/chrome/browser/ui/views/ash/chrome_shell_delegate.cc
@@ -13,6 +13,8 @@
#include "chrome/browser/extensions/api/terminal/terminal_extension_helper.h"
#include "chrome/browser/lifetime/application_lifetime.h"
#include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/sessions/tab_restore_service.h"
+#include "chrome/browser/sessions/tab_restore_service_factory.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/browser_list.h"
@@ -115,6 +117,13 @@ void ChromeShellDelegate::Exit() {
browser::AttemptUserExit();
}
+void ChromeShellDelegate::NewTab() {
+ Browser* browser = browser::FindOrCreateTabbedBrowser(
+ ProfileManager::GetDefaultProfileOrOffTheRecord());
+ browser->NewTab();
+ browser->window()->Show();
+}
+
void ChromeShellDelegate::NewWindow(bool is_incognito) {
Profile* profile = ProfileManager::GetDefaultProfileOrOffTheRecord();
Browser::NewEmptyWindow(
@@ -194,12 +203,39 @@ void ChromeShellDelegate::OpenMobileSetup() {
#endif
}
+void ChromeShellDelegate::RestoreTab() {
+ Profile* profile = ProfileManager::GetDefaultProfileOrOffTheRecord();
+ TabRestoreService* service =
+ TabRestoreServiceFactory::GetForProfile(profile);
+ if (!service)
+ return;
+ if (service->IsLoaded()) {
+ Browser* browser = browser::FindOrCreateTabbedBrowser(profile);
+ browser->RestoreTab();
+ } else {
+ service->LoadTabsFromLastSession();
+ // LoadTabsFromLastSession is asynchronous, so TabRestoreService has not
+ // finished loading the entries at this point. Wait for next event cycle
+ // which loads the restored tab entries.
+ MessageLoop::current()->PostTask(
+ FROM_HERE,
+ base::Bind(&ChromeShellDelegate::RestoreTab,
+ weak_factory_.GetWeakPtr()));
+ }
+}
+
void ChromeShellDelegate::ShowKeyboardOverlay() {
#if defined(OS_CHROMEOS)
KeyboardOverlayDialogView::ShowDialog();
#endif
}
+void ChromeShellDelegate::ShowTaskManager() {
+ Browser* browser = browser::FindOrCreateTabbedBrowser(
+ ProfileManager::GetDefaultProfileOrOffTheRecord());
+ browser->OpenTaskManager(false);
+}
+
content::BrowserContext* ChromeShellDelegate::GetCurrentBrowserContext() {
return ProfileManager::GetDefaultProfile();
}
diff --git a/chrome/browser/ui/views/ash/chrome_shell_delegate.h b/chrome/browser/ui/views/ash/chrome_shell_delegate.h
index 0644808..b404c56 100644
--- a/chrome/browser/ui/views/ash/chrome_shell_delegate.h
+++ b/chrome/browser/ui/views/ash/chrome_shell_delegate.h
@@ -37,12 +37,15 @@ class ChromeShellDelegate : public ash::ShellDelegate,
virtual bool IsScreenLocked() const OVERRIDE;
virtual void Shutdown() OVERRIDE;
virtual void Exit() OVERRIDE;
+ virtual void NewTab() OVERRIDE;
virtual void NewWindow(bool is_incognito) OVERRIDE;
virtual void Search() OVERRIDE;
virtual void OpenFileManager() OVERRIDE;
virtual void OpenCrosh() OVERRIDE;
virtual void OpenMobileSetup() OVERRIDE;
+ virtual void RestoreTab() OVERRIDE;
virtual void ShowKeyboardOverlay() OVERRIDE;
+ virtual void ShowTaskManager() OVERRIDE;
virtual content::BrowserContext* GetCurrentBrowserContext() OVERRIDE;
virtual void ToggleSpokenFeedback() OVERRIDE;
virtual app_list::AppListViewDelegate* CreateAppListViewDelegate() OVERRIDE;
diff --git a/chrome/browser/ui/views/toolbar_view.cc b/chrome/browser/ui/views/toolbar_view.cc
index b24f070..8c9a979 100644
--- a/chrome/browser/ui/views/toolbar_view.cc
+++ b/chrome/browser/ui/views/toolbar_view.cc
@@ -501,9 +501,15 @@ bool ToolbarView::GetAcceleratorForCommandId(int command_id,
*accelerator = ui::Accelerator(ui::VKEY_V, ui::EF_CONTROL_DOWN);
return true;
#if defined(USE_ASH)
- // When USE_ASH is defined, IDC_NEW_WINDOW and IDC_NEW_INCOGNITO_WINDOW are
- // handled outside Chrome, in ash/accelerators/accelerator_table.cc.
- // crbug.com/120196
+ // When USE_ASH is defined, the commands listed here are handled outside
+ // Chrome, in ash/accelerators/accelerator_table.cc (crbug.com/120196).
+ case IDC_CLEAR_BROWSING_DATA:
+ *accelerator = ui::Accelerator(ui::VKEY_BACK,
+ ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN);
+ return true;
+ case IDC_NEW_TAB:
+ *accelerator = ui::Accelerator(ui::VKEY_T, ui::EF_CONTROL_DOWN);
+ return true;
case IDC_NEW_WINDOW:
*accelerator = ui::Accelerator(ui::VKEY_N, ui::EF_CONTROL_DOWN);
return true;
@@ -511,6 +517,9 @@ bool ToolbarView::GetAcceleratorForCommandId(int command_id,
*accelerator = ui::Accelerator(ui::VKEY_N,
ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN);
return true;
+ case IDC_TASK_MANAGER:
+ *accelerator = ui::Accelerator(ui::VKEY_ESCAPE, ui::EF_SHIFT_DOWN);
+ return true;
#endif
}
// Else, we retrieve the accelerator information from the frame.