diff options
author | beng@google.com <beng@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-09-08 17:43:47 +0000 |
---|---|---|
committer | beng@google.com <beng@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-09-08 17:43:47 +0000 |
commit | 49fda735afc5f31c3036191efb20f72576aff8a9 (patch) | |
tree | 4c74b53e5ae7a772881a298fa89dada444304863 /chrome/browser | |
parent | 584fa1d4f6bcc7e0c769e0dbfa36f819a93f3ec2 (diff) | |
download | chromium_src-49fda735afc5f31c3036191efb20f72576aff8a9.zip chromium_src-49fda735afc5f31c3036191efb20f72576aff8a9.tar.gz chromium_src-49fda735afc5f31c3036191efb20f72576aff8a9.tar.bz2 |
Support WM_APPCOMMAND on Window. Make it just pass through to WindowDelegate::ExecuteWindowsCommand. The delegate needs to pre-translate for it.
This allows my mouse's back and forward buttons to work on the new frames.
B=1031854
Review URL: http://codereview.chromium.org/1620
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1849 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r-- | chrome/browser/views/frame/browser_view2.cc | 44 | ||||
-rw-r--r-- | chrome/browser/views/frame/browser_view2.h | 3 |
2 files changed, 47 insertions, 0 deletions
diff --git a/chrome/browser/views/frame/browser_view2.cc b/chrome/browser/views/frame/browser_view2.cc index 31259b7..607ddb0 100644 --- a/chrome/browser/views/frame/browser_view2.cc +++ b/chrome/browser/views/frame/browser_view2.cc @@ -559,6 +559,12 @@ bool BrowserView2::ShouldShowWindowIcon() const { } bool BrowserView2::ExecuteWindowsCommand(int command_id) { + // Translate WM_APPCOMMAND command ids into a command id that the browser + // knows how to handle. + int command_id_from_app_command = GetCommandIDForAppCommandID(command_id); + if (command_id_from_app_command != -1) + command_id = command_id_from_app_command; + if (browser_->SupportsCommand(command_id)) { if (browser_->IsCommandEnabled(command_id)) browser_->ExecuteCommand(command_id); @@ -1092,6 +1098,44 @@ void BrowserView2::BuildMenuForTabStriplessWindow(Menu* menu, } } +int BrowserView2::GetCommandIDForAppCommandID(int app_command_id) const { + switch (app_command_id) { + case APPCOMMAND_BROWSER_BACKWARD: + return IDC_BACK; + case APPCOMMAND_BROWSER_FORWARD: + return IDC_FORWARD; + case APPCOMMAND_BROWSER_REFRESH: + return IDC_RELOAD; + case APPCOMMAND_BROWSER_HOME: + return IDC_HOME; + case APPCOMMAND_BROWSER_STOP: + return IDC_STOP; + case APPCOMMAND_BROWSER_SEARCH: + return IDC_FOCUS_SEARCH; + case APPCOMMAND_CLOSE: + return IDC_CLOSETAB; + case APPCOMMAND_NEW: + return IDC_NEWTAB; + case APPCOMMAND_OPEN: + return IDC_OPENFILE; + case APPCOMMAND_PRINT: + return IDC_PRINT; + + // TODO(pkasting): http://b/1113069 Handle all these. + case APPCOMMAND_HELP: + case APPCOMMAND_SAVE: + case APPCOMMAND_UNDO: + case APPCOMMAND_REDO: + case APPCOMMAND_COPY: + case APPCOMMAND_CUT: + case APPCOMMAND_PASTE: + case APPCOMMAND_SPELL_CHECK: + default: + break; + } + return -1; +} + // static void BrowserView2::InitClass() { static bool initialized = false; diff --git a/chrome/browser/views/frame/browser_view2.h b/chrome/browser/views/frame/browser_view2.h index 3f6d276..58723f7 100644 --- a/chrome/browser/views/frame/browser_view2.h +++ b/chrome/browser/views/frame/browser_view2.h @@ -286,6 +286,9 @@ class BrowserView2 : public BrowserWindow, // Builds the correct menu for when we have minimal chrome. void BuildMenuForTabStriplessWindow(Menu* menu, int insertion_index); + // Retrieves the command id for the specified Windows app command. + int GetCommandIDForAppCommandID(int app_command_id) const; + // Initialize class statics. static void InitClass(); |